如何在java中使用正则表达式从多个文本文件中读取数据?
在一个目录中给定多个文件 我必须只读取目录中的文本文件,并打印其中的所有信息 我的实施:如何在java中使用正则表达式从多个文本文件中读取数据?,java,regex,file-io,Java,Regex,File Io,在一个目录中给定多个文件 我必须只读取目录中的文本文件,并打印其中的所有信息 我的实施: 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
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();
}
File filepath=新文件(“c:/test”);
模式p=模式.compile(“[a-zA-Z0-9_]+.txt”);
字符串s1[]=filepath.list();
对于(int i=0;i您在读取文件时可能会遇到问题
要了解您到底遇到了什么问题-“未找到文件”或“读取权限不足”-在打开文件进行读取或写入(以及读取目录)时始终捕获并打印异常:
这里是:
一旦你解决了这个问题,就转到文件解析。我不知道你的问题,但是这个if(m.find()&&m.equals(s1));
有缺陷:它是一个没有代码块的if
。删除那个分号。此外,你可能需要在if
和for
循环的末尾之间的所有东西都用大括号括起来。
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);
}
}
java.io.FileNotFoundException: nonexistant.txt (No such file or directory)