当前位置:首页 > Java

java如何写文件

2026-03-03 10:59:14Java

写入文件的基本方法

使用 FileWriterBufferedWriter 可以快速实现文件写入。FileWriter 直接操作文件字符流,适合简单场景;BufferedWriter 提供缓冲区,适合频繁写入。

try (FileWriter writer = new FileWriter("output.txt")) {
    writer.write("Hello, World!");
} catch (IOException e) {
    e.printStackTrace();
}
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
    writer.write("Line 1");
    writer.newLine();
    writer.write("Line 2");
} catch (IOException e) {
    e.printStackTrace();
}

使用 Files 工具类(Java 7+)

java.nio.file.Files 提供简洁的静态方法,适合一次性写入内容或处理多行文本。

Path path = Paths.get("output.txt");
String content = "Text to write";
Files.write(path, content.getBytes(), StandardOpenOption.CREATE);

多行写入示例:

java如何写文件

List<String> lines = Arrays.asList("Line 1", "Line 2");
Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.CREATE);

二进制文件写入

对于二进制数据(如图片、序列化对象),需使用 FileOutputStreamBufferedOutputStream

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

追加写入模式

通过设置追加标志(append=true)或 StandardOpenOption.APPEND,避免覆盖原有内容。

java如何写文件

try (FileWriter writer = new FileWriter("output.txt", true)) {
    writer.write("\nAppended text");
} catch (IOException e) {
    e.printStackTrace();
}

NIO 追加示例:

Files.write(
    Paths.get("output.txt"),
    "Appended text".getBytes(),
    StandardOpenOption.APPEND
);

异常处理最佳实践

推荐使用 try-with-resources 自动关闭资源,并处理 IOException。对于关键应用,可增加文件权限检查和磁盘空间验证。

Path path = Paths.get("output.txt");
if (Files.isWritable(path.getParent())) {
    try (BufferedWriter writer = Files.newBufferedWriter(path)) {
        writer.write("Checked write");
    } catch (IOException e) {
        System.err.println("Write failed: " + e.getMessage());
    }
}

标签: 如何写文件
分享给朋友:

相关文章

vue实现文件进度

vue实现文件进度

Vue 实现文件上传进度 使用 Vue 实现文件上传进度可以通过结合 axios 或原生 XMLHttpRequest 的进度事件来实现。以下是两种常见方法: 使用 axios 上传文件并显示进度…

vue实现文件对比

vue实现文件对比

Vue实现文件对比的方法 使用第三方库实现差异对比 推荐使用diff-match-patch或jsdiff库,它们专为文本差异对比设计,支持高亮显示差异部分。安装后可直接在Vue组件中调用。 npm…

vue文件下载怎么实现

vue文件下载怎么实现

使用 <a> 标签下载文件 在 Vue 中可以通过动态生成 <a> 标签实现文件下载。创建一个隐藏的 <a> 标签,设置 href 为文件 URL 并添加 down…

react如何写列表

react如何写列表

在React中渲染列表的方法 使用map方法遍历数组生成列表元素 React中通常通过JavaScript的map方法将数组数据转换为React元素数组。每个列表项需要包含唯一的key属性以提高渲染性…

react 如何写页面跳转

react 如何写页面跳转

页面跳转的实现方式 在React中实现页面跳转可以通过多种方式,以下是常见的几种方法: 使用React Router的<Link>组件 React Router是React生态中最常用的…

react如何写小程序

react如何写小程序

React 开发小程序的方法 React 本身是为 Web 应用设计的,但可以通过以下方式开发小程序: 使用 Taro 框架 Taro 是一个多端统一开发框架,支持使用 React 语法开发小程序(…