私はこのプログラムを持っていますが、ディレクトリではなくファイルを検索し、その中の特定の文章を検索してファイル名を印刷したいのですが、 と書いてあります。 ////////////フォルダにファイルがあり特定の文章があります
にFileNotFoundException
public static void main(String[] args) throws FileNotFoundException {
File file=new File("/Users/amoona/Desktop/MyDir");
File[] matches = file.listFiles();
for (int i=0;i<file.length();i++) {
Scanner sc=new Scanner (matches[i]);
if (matches[i].isFile()) {
System.out.println("It Is A File");
while (sc.hasNext()) {
String s = sc.next();
if ("King AbdulAziz University".equalsIgnoreCase(s)) {
System.out.println(matches[i].getName());
}
}
}
}
}
が、私はこれにコードを変更しますが、ここでの問題は、それが特定の文を持っているファイル名を印刷does'tこと
ファイルファイル=新しいファイル( "/ Users/amoona/Desktop/MyDir"); File [] fList = file.listFiles();あなたのおi<matches.length
を使用する必要があるときは、i<file.length()
を使用しているforループで
for(File ff : fList){
if (ff.isDirectory()!=true){
Scanner sc=new Scanner (ff);
System.out.println("It Is A File");
System.out.println(ff.getName());
while(sc.hasNext()){
String s=sc.nextLine();
if (s.equalsIgnoreCase("King AbdulAziz University")){
System.out.println("The File That Has King AbdulAziz University");
System.out.println(ff.getName());
}}
}
}
ラインはあなたにエラーを与える:ここで
は少し上記の点を含むように修正、あなたの方法ですか? – pczeus
'next()'は次のトークンを返します(トークンのデフォルトの区切り文字はスペース文字です)ので、基本的には文ではなく単語を返します。 'nextLine'を試してみてください。 – Berger