网问答>>Java学习day15-IO流
问题
已解决

Java学习day15-IO流

时间:2026-03-04 10:08:35
Java学习day15-IO流
最佳回答
Java I/O流是用于处理输入输出的核心机制,主要分为字节流和字符流两大类,用于读写文件、网络通信等场景。以下是关键知识点总结:1. File类的作用文件/目录操作:File类用于表示文件或目录路径,提供创建、删除、检查存在性等方法,但不直接操作文件内容。File file = new File("path/to/file.txt");if (file.exists()) { System.out.println("文件存在");}2. I/O流的作用数据传输:I/O流是程序与外部设备(如文件、网络)之间的数据通道,分为:输入流(Input):从外部读取数据到程序(如FileReader)。输出流(Output):将程序数据写入外部(如FileWriter)。核心分类:字节流:处理二进制数据(如图片、视频),基类为InputStream/OutputStream。字符流:处理文本数据,自动处理字符编码,基类为Reader/Writer。3. I/O流的体系结构字节流:输入流:FileInputStream、BufferedInputStream输出流:FileOutputStream、BufferedOutputStream字符流:输入流:FileReader、BufferedReader输出流:FileWriter、BufferedWriter缓冲流:通过Buffered类提升读写效率(减少磁盘I/O次数)。4. 代码示例解析输入流示例:读取文本文件import java.io.*;public class Test01 { public static void main(String[] args) throws IOException { File f = new File("E:test.txt"); FileReader fr = new FileReader(f); // 字符输入流 int n; while ((n = fr.read()) != -1) { // 逐字符读取 System.out.print((char) n); // 转换为字符输出 } fr.close(); // 必须关闭流释放资源 }}关键点:FileReader按字符读取,适合文本文件。read()返回int类型(字符的Unicode编码),需强制转换。必须处理IOException并关闭流。输出流示例:写入文本文件import java.io.*;public class Test02 { public static void main(String[] args) throws IOException { File f = new File("E:demo.txt"); FileWriter fw = new FileWriter(f); // 字符输出流 fw.write("你好"); // 写入字符串 fw.close(); // 刷新并关闭流 }}关键点:FileWriter默认覆盖文件内容,追加模式需用FileWriter(f, true)。写入后需调用close()或flush()确保数据落盘。5. 常见问题与优化资源泄漏:未关闭流可能导致资源耗尽,建议使用try-with-resources:try (FileReader fr = new FileReader("file.txt")) { // 自动关闭流} catch (IOException e) { e.printStackTrace();}字符编码:处理非ASCII文本时,指定编码(如OutputStreamWriter):Writer writer = new OutputStreamWriter( new FileOutputStream("file.txt"), "UTF-8");大文件处理:使用缓冲流减少I/O次数:BufferedReader br = new BufferedReader(new FileReader("large.txt"));6. 总结File类:操作文件路径和属性。I/O流:通过流对象实现数据读写,按需选择字节流或字符流。最佳实践:优先使用缓冲流、及时关闭资源、处理异常。通过掌握这些基础,可以进一步学习NIO(非阻塞I/O)或序列化等高级特性。
时间:2026-03-04 10:08:41
本类最有帮助
Copyright © 2008-2013 www.wangwenda.com All rights reserved.冀ICP备12000710号-1
投诉邮箱: