当前位置:首页 > Java

如何读写java文件

2026-03-18 04:42:47Java

读取Java文件

使用java.io包中的FileReaderBufferedReader类可以高效读取文本文件内容。BufferedReader提供了逐行读取的方法,适合处理大文件。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        String filePath = "example.txt";
        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

写入Java文件

通过FileWriterBufferedWriter实现文件写入。BufferedWriter提供write()方法写入内容,newLine()方法添加换行符。使用try-with-resources确保资源自动关闭。

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteFile {
    public static void main(String[] args) {
        String filePath = "output.txt";
        try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
            bw.write("Hello, World!");
            bw.newLine();
            bw.write("This is a sample text.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

处理二进制文件

对于非文本文件(如图片或视频),需使用FileInputStreamFileOutputStream以字节流形式读写。以下示例复制二进制文件:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class BinaryFileCopy {
    public static void main(String[] args) {
        String sourcePath = "source.jpg";
        String destPath = "copy.jpg";
        try (FileInputStream fis = new FileInputStream(sourcePath);
             FileOutputStream fos = new FileOutputStream(destPath)) {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = fis.read(buffer)) != -1) {
                fos.write(buffer, 0, bytesRead);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用NIO包(Java 7+)

java.nio.file包提供更简洁的API。Files.readAllLines()可一次性读取所有行,Files.write()直接写入内容,适合小文件操作。

如何读写java文件

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;

public class NIOFileRead {
    public static void main(String[] args) {
        String filePath = "example.txt";
        try {
            List<String> lines = Files.readAllLines(Paths.get(filePath));
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.Arrays;

public class NIOFileWrite {
    public static void main(String[] args) {
        String filePath = "output.txt";
        try {
            Files.write(Paths.get(filePath), 
                       Arrays.asList("Line 1", "Line 2"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

异常处理建议

文件操作必须处理IOException。推荐使用try-with-resources语法自动管理资源,避免手动关闭流导致的资源泄漏。对于大文件,避免一次性读取全部内容,改用流式处理。

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

相关文章

vue实现录音文件播放

vue实现录音文件播放

实现录音文件播放的方法 在Vue中实现录音文件播放需要结合HTML5的Web Audio API或第三方库。以下是两种常见的方法: 使用HTML5 Audio元素 通过Vue动态绑定<aud…

php实现文件下载代码

php实现文件下载代码

实现文件下载的基本方法 使用PHP实现文件下载的核心是通过设置HTTP头部信息,强制浏览器触发下载行为而非直接显示文件内容。 $file_path = 'path/to/your/file.ext'…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

vue实现文件预览

vue实现文件预览

Vue 实现文件预览的方法 文件预览功能通常涉及图片、PDF、Office文档等多种格式的处理。以下是几种常见文件类型的实现方案: 图片预览 使用 <input type="file">…

java如何取绝对值

java如何取绝对值

取绝对值的方法 在Java中,取绝对值可以通过以下几种方式实现: 使用Math.abs()方法 Math.abs()是Java中最常用的取绝对值方法,适用于多种数据类型: int absolute…

vue 实现文件下载

vue 实现文件下载

使用 window.open 方法 通过 window.open 直接打开文件链接触发下载,适用于已知文件 URL 的情况: window.open('文件URL', '_blank') 使用 &l…