Java 中的 File 类及 InputStream 和 OutputStream 的用法总结
在 Java 中,文件操作是一个常见的需求。
File
类用于表示文件和目录,而 InputStream
和 OutputStream
类则用于处理字节流的输入和输出。以下是对这三者的详细总结。
1. File 类
File
类是 Java 中用于表示文件和目录的抽象表示。它提供了多种方法来创建、删除、重命名和检查文件或目录的属性。
常用方法:
- 创建文件或目录:
File file = new File("example.txt");
try { if (file.createNewFile()) { System.out.println("文件创建成功"); } else { System.out.println("文件已存在"); }
} catch (IOException e) { e.printStackTrace();
}
- 删除文件或目录:
if (file.delete()) { System.out.println("文件删除成功");
} else { System.out.println("文件删除失败");
}
- 检查文件或目录属性:
if (file.exists()) { System.out.println("文件存在");
}
System.out.println("文件大小: " + file.length());
- 列出目录中的文件:
File dir = new File("someDirectory");
String[] files = dir.list();
if (files != null) { for (String filename : files) { System.out.println(filename); }
}
2. InputStream 类
InputStream
是一个抽象类,用于读取字节流。它是所有输入流的超类,提供了多种读取方法。
常用子类:
- FileInputStream: 从文件中读取字节。
- BufferedInputStream: 为其他输入流提供缓冲功能,提高读取效率。
使用示例:
try (InputStream inputStream = new FileInputStream("example.txt")) { int data; while ((data = inputStream.read()) != -1) { System.out.print((char) data); }
} catch (IOException e) { e.printStackTrace();
}
3. OutputStream 类
OutputStream
是一个抽象类,用于写入字节流。它是所有输出流的超类,提供了多种写入方法。
常用子类:
- FileOutputStream: 向文件中写入字节。
- BufferedOutputStream: 为其他输出流提供缓冲功能,提高写入效率。
使用示例:
try (OutputStream outputStream = new FileOutputStream("output.txt")) { String data = "Hello, World!"; outputStream.write(data.getBytes());
} catch (IOException e) { e.printStackTrace();
}
总结
File
类用于文件和目录的操作,提供了创建、删除、检查属性等功能。InputStream
和OutputStream
类用于处理字节流的输入和输出,分别用于读取和写入数据。- 在进行文件操作时,建议使用
try-with-resources
语句来自动关闭流,避免资源泄露。
通过合理使用 File
类及其相关的输入输出流,可以高效地进行文件操作,满足各种应用需求。