Java函数:如何批量读取、写入和修改文件?
发布时间:2023-07-04 22:42:41
在Java中,可以使用File类和Scanner类来批量读取、写入和修改文件。
1. 批量读取文件:
使用File类的listFiles()方法可以获取指定文件夹下的所有文件。可以使用循环遍历这些文件,并使用Scanner类的构造函数从文件中读取数据。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FileBatchProcessing {
public static void main(String[] args) {
File folder = new File("folderPath");
File[] files = folder.listFiles();
for (File file : files) {
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 处理每一行数据
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
2. 批量写入文件:
使用File类的构造函数可以创建指定路径的文件。在循环中,使用File类的createNewFile()方法创建文件,然后使用FileWriter类或BufferedWriter类将数据写入文件。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileBatchProcessing {
public static void main(String[] args) {
File folder = new File("folderPath");
File[] files = folder.listFiles();
for (File file : files) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
// 将数据写入文件
writer.write("data");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
3. 批量修改文件:
使用File类的构造函数可以获取指定路径的文件。在循环中,可以使用Scanner类从文件中读取数据,在对数据进行处理后,使用FileWriter类或BufferedWriter类将修改后的数据写回到文件中。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileBatchProcessing {
public static void main(String[] args) {
File folder = new File("folderPath");
File[] files = folder.listFiles();
for (File file : files) {
try (Scanner scanner = new Scanner(file)) {
StringBuilder content = new StringBuilder();
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 修改每一行数据并追加到StringBuilder中
line = line.toUpperCase();
content.append(line).append(System.lineSeparator());
}
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
writer.write(content.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上是使用Java读取、写入和修改文件的简单示例,可以根据具体需求进行修改和扩展。
