Java文件读写操作深度解析:InputStream/OutputStream与Reader/Writer

3星 · 超过75%的资源 需积分: 10 93 下载量 163 浏览量 更新于2024-09-14 1 收藏 86KB PDF 举报
在Java中,文件的读写操作是一项基础且重要的任务,尤其是在处理文件I/O操作时。本文将深入探讨Java针对文件的不同操作方法,从早期版本JDK1.0到后续的JDK1.1更新,展示了文件操作方式的演进和优化。 在JDK1.0中,文件读写主要依赖于InputStream和OutputStream这两个核心类。例如,FileInputStream是一个用于读取文件的抽象类,它提供了一种通过文件路径获取字节流的方式。创建FileInputStream后,通常会配合DataInputStream使用,如通过调用`fstream = new FileInputStream(args[0])`和`in = new DataInputStream(fstream)`来读取文件。读取数据通常通过`in.readLine()`实现,读取完成后,记得关闭输入流,即`in.close()`。 另一方面,FileOutputStream则用于写入文件,例如`FileOutputStream outout = new FileOutputStream("myfile.txt")`,然后通过PrintStream对象`p = new PrintStream(out)`来进行数据输出。写入数据后别忘了关闭输出,即`p.close()`。这部分的示例代码可以在Example1中找到。 随着JDK1.1的引入,文件操作有了更高级别的API,引入了Reader和Writer类,专门用于处理文本文件。FileReader和FileWriter是基于字符流的,适合处理文本数据。创建FileReader时,如`fr = new FileReader("mydata.txt")`,接着使用BufferedReader进行缓冲读取,`br = new BufferedReader(fr)`。读取文本行时,使用`br.readLine()`,读取完毕后记得关闭缓存(`br.close()`)和文件(`fr.close()`),这部分在Example3中可见。 与此同时,FileWriter提供了类似的功能,用于写入文件,如`fw = new FileWriter("mydata.txt")`,配合PrintWriter进行输出,如`out = new PrintWriter(fw)`,通过`out.print()`或`out.println()`写入内容。同样,在操作完成时,需要关闭输出流,即`out.close()`。 总结来说,JDK1.0的字节流操作适用于二进制文件,而JDK1.1以后的字符流操作则更适用于文本文件,提供了一种更易读和理解的方式来处理文件内容。无论是哪个版本,正确关闭流资源对于程序的健壮性和性能都至关重要。熟练掌握这些操作方法,有助于编写高效、可靠的Java文件读写代码。