`
paladin1988
  • 浏览: 326375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转载】java中输入流和输出流

 
阅读更多

 

    之前我也没分清楚,看了一篇帖子之后,彻头彻尾的算是理解了,问题是,我又把C语言的文件操作忘记光了。

 

   初学JAVA,看到输入流与输出流的部分,有一点不明白,到底是输入流是写入还是输出流可以写入文件呢?那要将文件读出是用输入流还是输出流好呢?
我看书上,似乎输入流与输出流都可以写入并读出列出文件。那到底有什么区别?
谢谢!

perryhg 程序在内存中运行,文件在磁盘上,把文件从磁盘上读入内存中来,当然是输入流了,反之,把内存中的数据写到磁盘上的文件里面去就是输出。通常都是这样的,用了过滤流的情况复杂一些,则另当别论。
nikia 那与WINDOWS里所说的写(将内容写入到文件里,如:存盘)---输入、读(把内容从文件里读出来,如:显示)---输出,为什么不一样呢?
是不是可以这样理解:在JAVA里的输入流与输出流是针对内存而言的,它是从内存读与写。而不是我所说的显示与存盘问题?因为我看输入流与输出流都可以将内容在屏幕上显示出来。
perryhg 屏幕和键盘也是区别于内存的设备啊,你可以将内存中的的数据“输出”到屏幕上,所有要用System.out.println() 而从终端读取键盘输入用System.in 啊

所以我没看出有什么区别啊,你从文件里面读入,然后输出到屏幕,这是两个流啊,你文件内容读入内存,不必须输出到屏幕啊,处理完了写回到文件里面不可以吗?
nikia 那我写文件该用输入流还是输出流呢?
我读文件又是用什么好呢?为什么?
perryhg 看来你并没有理解内存、磁盘、终端(屏幕/键盘)、网络之间的关系。
你程序操作的数据都应该是在内存里面,内存是你操作的主对象,把数据从其他资源里面传送到内存里面,就是输入,反之,把数据从内存传送到其他资源,就是输出。

读文件
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("infilename")));
不管你从磁盘读,从网络读,或者从键盘读,读到内存,就是InputStream。

写文件
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("outfilename")));
不管你写倒磁盘,写到网络,或者写到屏幕,都是OuputStream

这样解答了你的问题了吗?
雨夜的寂寞 真没想到这个问题居然可以讨论成这样..
nikia 谢谢版主
rabbit008

斑竹真是好耐心,说的很详细:)

分享到:
评论

相关推荐

    深入分析 Java I/O 的工作机制(转载)

    流可以是输入流或输出流,输入流用于从源头获取数据,输出流则用于向目的地发送数据。Java提供了许多预定义的流类,例如FileInputStream和FileOutputStream分别用于读取和写入文件,而SocketInputStream和...

    【转载】java实现的局域网聊天软件

    - **输入输出流**:Java的IO流用于数据的读写,例如InputStream和OutputStream用于字节流,而Reader和Writer处理字符流。在网络通信中,我们通常使用BufferedReader和PrintWriter进行数据的读取和发送。 4. **...

    [转载] JAXB中Java对象和XML之间的转换

    JAXB,全称为Java Architecture for XML Binding,是Java平台中用于在XML和Java对象之间进行映射的标准技术。它提供了一种自动的方式,使得开发者能够方便地在XML文档和Java对象之间进行数据交换,极大地简化了XML...

    java文件路径操作详细(转载)

    文件操作通常与输入/输出流相关联,如`FileInputStream`和`FileOutputStream`用于读写文件,`BufferedReader`和`BufferedWriter`用于文本操作。 9. **NIO(非阻塞I/O)**: Java NIO提供了`java.nio.file`包,...

    《Java 程序设计》模拟试题(转载).docx

    7. 标准数据流:Java中的标准数据流包括标准输入、输出和错误流,分别对应`System.in`, `System.out`和`System.err`。 8. 数组声明:Java中数组的声明格式通常是`type[] arrayName`或`type arrayName[]`。对于多维...

    java编程事项(转载收集整理版)

    6. **输入/输出(I/O)**:Java的I/O流系统包括字符流和字节流,以及用于文件操作、网络通信和对象序列化的API。学会使用BufferedReader、FileWriter等类进行文件操作,是开发中常见的需求。 7. **网络编程**:Java...

    java编程思想习题及答案

    5. **IO流与NIO**:掌握输入/输出流的基本用法,包括文件操作、网络通信等。了解非阻塞I/O(NIO)的概念和应用,能提升程序的效率。 6. **多线程**:学习如何创建和管理线程,理解同步机制,如synchronized关键字、...

    Java面试资料大集合

    - **流的概念**:字节流、字符流,以及对应的输入流和输出流。 - **缓冲区**:使用BufferedReader、BufferedWriter等提高读写效率。 - **NIO**:非阻塞I/O,通道(Channel)和缓冲区(Buffer)的使用。 5. **...

    java事例集合1

    16. **Lambda表达式和流API**:Java 8引入的新特性,用于简化代码和处理集合。 这个压缩包可能包含每个主题的独立Java源代码文件,每个文件都对应一个特定的知识点,并且可能带有相应的解释或注释,以便学习者理解...

    软件测试基本方法(转载)

    2. 黑盒测试:不考虑内部结构,只关注软件的输入和输出。它模拟真实用户的操作,验证功能是否按预期工作。黑盒测试方法有等价类划分、边界值分析、决策表等。 3. 灰盒测试:结合白盒和黑盒测试的特点,既考虑代码...

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    从服务器中获取输入流,并同时与客户端建立输出流(服务器与客户端链接通过Socket进行连接) 3。当点击“保存”或“打开”时,开始传输数据。如果点击“取消”,关闭所有的流。 这里要注意的是,但是实际发现Socket...

    使用urlconnection下载文件或图片并保存到本地

    // 输入流 InputStream is = con.getInputStream(); // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流 OutputStream os = new FileOutputStream...

Global site tag (gtag.js) - Google Analytics