FileInputStream和FileOutputStream用于Java中文件字节流读写,适用于任意文件类型。2. 使用try-with-resources自动关闭流,配合byte数组缓冲提升读写效率。3. FileOutputStream可选择覆盖或追加模式写入数据。4. 可结合二者实现文件复制,尤其适合二进制文件。5. 注意预判文件存在性与权限,避免内存溢出,大文件应循环读写。6. 处理文本时建议后续使用字符流以正确处理编码。7. 尽管NIO更高效,传统流在底层操作中仍有应用价值。

在Java中,FileInputStream 和 FileOutputStream 是处理文件字节流读写的常用类,适用于操作任意类型的文件(如文本、图片、音频等)。它们属于java.io包,基于字节流进行操作,适合处理非字符数据。下面介绍如何正确使用这两个类,并提供实用技巧。
FileInputStream用于从文件中逐字节或批量读取数据。常见做法是配合byte数组进行缓冲读取,提高效率。
示例:读取一个文本或二进制文件
try (FileInputStream fis = new FileInputStream("data.txt")) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
// 处理读取到的字节
System.out.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
System.err.println("读取文件出错:" + e.getMessage());
}
说明:
- 使用 try-with-resources 可自动关闭流,避免资源泄漏。
- read() 方法返回读取的字节数,到达文件末尾返回 -1。
- 建议使用缓冲数组(如1024字节)提升性能。
FileOutputStream用于将字节数据写入文件。可选择覆盖模式或追加模式。
立即学习“Java免费学习笔记(深入)”;
示例:写入字符串到文件
String data = "Hello, Java File IO!";
try (FileOutputStream fos = new FileOutputStream("output.txt")) {
fos.write(data.getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
System.err.println("写入文件出错:" + e.getMessage());
}
追加模式:如果想在文件末尾追加内容,构造函数传入true参数:
new FileOutputStream("output.txt", true)
利用FileInputStream和FileOutputStream可以轻松实现文件复制,尤其适合图片、视频等二进制文件。
try (FileInputStream fis = new FileInputStream("source.jpg");
FileOutputStream fos = new FileOutputStream("copy.jpg")) {
<pre class='brush:java;toolbar:false;'>byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}} catch (IOException e) { System.err.println("文件复制失败:" + e.getMessage()); }
技巧:
- 缓冲大小建议为1024或其倍数,平衡内存与性能。
- 确保源文件存在,目标路径可写,避免权限或路径错误。
使用File流时需注意以下几点:
基本上就这些。掌握FileInputStream和FileOutputStream的使用,是理解Java IO的基础。虽然NIO(如Files类)提供了更高阶的API,但在底层控制和兼容性场景下,传统流依然有其价值。
以上就是在Java中如何使用FileInputStream与FileOutputStream读写文件_File流使用技巧的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号