0
ディレクトリ内に複数のファイルがある場合javaで正規表現を使用して複数のテキストファイルからデータを読み取るにはどうすればよいですか?
ディレクトリからテキストファイルのみを読み込み、その中のすべての情報を出力する必要があります。
私の実装:
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に発生する、NullPointerを取得しています上記のプログラムを実行する必要があります。
- ファイルクラスでfileListメソッドを使用する方法はわかっていますが、ディレクトリ内のすべてのファイルを読み取ることができますし、文字列クラスでendsWithメソッドを使用できることもわかります。
しかし、上記の実装を使用してテキストファイル内のすべてのデータを読み取る方法を知りたがっています。
上記の方法を正しく処理する方法については、誰でも私にこのガイドを教えてください。
あなたの問題はわかりませんが、このif(m.find()&& m.equals(s1));はバグです:コードブロックのない 'if'です。そのセミコロンを削除します。さらに、 'if'と' for'ループの終わりの間のすべてを囲む括弧が必要です。 – Bohemian