当前位置:首页 > Java

java如何读写文件

2026-02-05 00:52:25Java

读取文件

使用 BufferedReader 读取文本文件是一种高效的方式,可以逐行读取内容。需要先创建 FileReader 对象,再将其传递给 BufferedReader

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

对于二进制文件,可以使用 FileInputStream 配合 BufferedInputStream 提高读取效率。通过字节数组缓存数据,适用于非文本文件。

try (FileInputStream fis = new FileInputStream("file.bin");
     BufferedInputStream bis = new BufferedInputStream(fis)) {
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = bis.read(buffer)) != -1) {
        // 处理读取到的字节数据
    }
} catch (IOException e) {
    e.printStackTrace();
}

写入文件

使用 BufferedWriter 写入文本文件时,可以调用 write() 方法写入字符串,newLine() 方法添加换行符。需要显式调用 flush() 或关闭流确保数据写入磁盘。

java如何读写文件

try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
    bw.write("Hello, World!");
    bw.newLine();
    bw.write("Another line");
} catch (IOException e) {
    e.printStackTrace();
}

对于二进制文件写入,FileOutputStream 配合 BufferedOutputStream 是常见选择。通过字节数组批量写入数据,适合处理图片、音频等二进制内容。

try (FileOutputStream fos = new FileOutputStream("output.bin");
     BufferedOutputStream bos = new BufferedOutputStream(fos)) {
    byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // Hello的ASCII码
    bos.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

NIO文件操作

Java NIO提供了更现代的API,Files 类包含便捷方法。读取所有行到列表只需一行代码,适合小文件处理。

java如何读写文件

try {
    List<String> lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8);
    lines.forEach(System.out::println);
} catch (IOException e) {
    e.printStackTrace();
}

NIO写入文件同样简洁,可以指定打开选项。StandardOpenOption.CREATE 会在文件不存在时创建,APPEND 实现追加写入。

try {
    Files.write(Paths.get("output.txt"), 
               "New content".getBytes(), 
               StandardOpenOption.CREATE, 
               StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}

异常处理

无论使用哪种方式,都必须妥善处理 IOException。try-with-resources 语法能自动关闭资源,避免忘记调用 close() 方法导致资源泄漏。

对于文件路径处理,推荐使用 Paths.get() 替代硬编码路径,增强跨平台兼容性。字符编码建议显式指定为 StandardCharsets.UTF_8,避免平台默认编码差异问题。

标签: 文件java
分享给朋友:

相关文章

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

如何选择java培训

如何选择java培训

评估培训机构资质 选择有正规资质的机构,查看其营业执照、办学许可证等。优先考虑具备人力资源和社会保障部或教育部认证的机构,这类机构的教学质量和课程设置通常更规范。 考察课程内容与行业需求匹配度…

java如何创建测试类

java如何创建测试类

创建测试类的基本步骤 在Java中创建测试类通常使用JUnit框架,以下是具体方法: 安装JUnit依赖 对于Maven项目,在pom.xml中添加依赖: <dependency>…

vue预览文件实现

vue预览文件实现

实现文件预览功能 在Vue中实现文件预览功能可以通过多种方式完成,具体取决于文件类型(图片、PDF、文档等)和需求。以下是几种常见实现方法: 图片文件预览 使用HTML5的FileReader AP…

vue中实现文件导入

vue中实现文件导入

文件导入的基本实现 在Vue中实现文件导入通常通过HTML的<input type="file">元素结合Vue的事件处理完成。创建一个文件选择按钮,监听change事件获取用户选择的文件…