欢迎访问宙启技术站
智能推送

Java中常用IO函数:文件读写、流的复制与合并等

发布时间:2023-07-06 00:21:56

在Java中,常用的IO函数包括文件读写、流的复制与合并等。以下是一些常用的IO函数及其使用方法。

文件读写:

1. 使用File类进行文件的读写操作。可以使用File类的构造函数来创建一个文件对象,然后使用FileReader或FileWriter类来对文件进行读写操作。

File file = new File("filename.txt");
FileReader reader = new FileReader(file);
FileWriter writer = new FileWriter(file);

2. 使用BufferedReader或BufferedWriter类对文件进行读写操作。这些类提供了更高效的读写功能,尤其是在大文件的读写过程中。

BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));

3. 使用Scanner类对文件进行读取操作。Scanner类提供了方便的方法来读取文件中的不同类型的数据。

Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
    String line = scanner.nextLine();
    // 对每一行进行处理
}

流的复制与合并:

1. 使用InputStream和OutputStream接口对流进行复制操作。可以使用字节流或字符流来实现。

InputStream inputStream = new FileInputStream("source.txt");
OutputStream outputStream = new FileOutputStream("target.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
    outputStream.write(buffer, 0, bytesRead);
}

2. 使用ZipOutputStream类对多个文件进行压缩操作。可以将多个文件压缩为一个ZIP文件。

ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("archive.zip"));
zipOut.putNextEntry(new ZipEntry("file1.txt"));
FileInputStream fileIn1 = new FileInputStream("file1.txt");
byte[] buffer1 = new byte[1024];
int bytesRead1;
while ((bytesRead1 = fileIn1.read(buffer1)) != -1) {
    zipOut.write(buffer1, 0, bytesRead1);
}

3. 使用SequenceInputStream类对多个文件进行合并操作。可以将多个输入流合并为一个输入流。

List<InputStream> inputStreams = new ArrayList<>();
inputStreams.add(new FileInputStream("file1.txt"));
inputStreams.add(new FileInputStream("file2.txt"));
SequenceInputStream sequenceInputStream = new SequenceInputStream(Collections.enumeration(inputStreams));

以上是Java中常用的IO函数,包括文件的读写、流的复制与合并等操作。通过这些函数,可以方便地对文件和流进行处理和操作。