gpt4 book ai didi

java - 如何在java中使用正则表达式从多个文本文件中读取数据?

转载 作者:行者123 更新时间:2023-12-01 08:49:42 24 4
gpt4 key购买 nike

给定一个目录中的多个文件

我必须只读取目录中的文本文件并打印其中的所有信息。

我的实现:

File filepath=new File("c:/test");
Pattern p=Pattern.compile("[a-zA-Z0-9_]+.txt");
String s1[]=filepath.list();
for (int i=0;i<s1.length;i++){
Matcher m=p.matcher(s1[i]);
if(m.find()&&m.equals(s1));
System.out.println(s1[i]);
File file1=new File(s1[i]);
readFromFile(file1);
}

static void readFromFile(File filename) throws IOException{
String line = null;
FileReader fileReader = new FileReader(filename); //1

BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
fileReader.close();

}
  1. 运行上述程序时,我在位置 1 处得到 NullPointer,如代码中所示。
  2. 虽然我知道在文件类中使用 fileList 方法的方法,但我可以读取目录中的所有文件,并且我也知道我可以使用 String 类中的endsWith 方法来仅读取文本文件。

但我想知道如何使用上述实现读取文本文件中的所有数据。

任何人都可以指导我如何正确处理上述方法。

最佳答案

您在读取文件时可能遇到问题。

要了解您到底遇到了什么问题 - “找不到文件”或“读取权限不足” - 始终在打开文件进行读取或写入(以及读取时)捕获并打印异常目录):

public static void main (String[] args) {
readFromFile(new File("nonexistant.txt"));
}

public static void readFromFile(File file) {
try (FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
for (String line = bufferedReader.readLine();
line != null;
line = bufferedReader.readLine()) {

System.out.println(line);
}
} catch (Exception ex) {
System.err.print(ex);
}
}

给你 prints the reason :

java.io.FileNotFoundException: nonexistant.txt (No such file or directory)

解决此问题后,请转到文件解析。

关于java - 如何在java中使用正则表达式从多个文本文件中读取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com