Я пытаюсь разрешить Java читать все файлы в каталоге и сравнивать имена файлов со списком строк, если имя файла совпадает со строкой в списке, должно быть выведено имя файла + «хит». Теперь я получил удар только по одному файлу.
попадание в папку содержит: foto5.jpeg yH1laMN0s7g.jpeg RdrzTHAvcQg.jpeg
Список lijst.txt содержит: foto5.jpeg yH1laMN0s7g.jpeg RdrzTHAvcgg * j5g *55должен получить: foto5 Хит! RdrzTHAvcQg Хит! yH1laMN0s7g Хит!
Но теперь я получаю: foto5 * RdrzTHAvcQg Хит! yH1laMN0s7g *
Я попытался поиграть с кодировкой, которая сейчас называется UTF-8. Но я не думаю, что это проблема.
public static void main(String[] args) {
// TODO Auto-generated method stub
String hit = ""; // empty string
File files = new File("C:\\Users\\bram\\Pictures\\hit");
File[] sourceFiles = files.listFiles(); // the files in the map hit java reads
List<String> lines = new ArrayList<String>();
try {
lines = FileUtils.readLines(new File("C:\\lijst.txt"), "utf-8");
} catch (IOException e2) {
} // java reads strings in the list
for (File x: sourceFiles) { // java iterates through all the files in the folder hits.
String names = x.getName().replaceAll("\\.[^.]*$", "").toString();
// java gets the filenames and converts them to strings without the extension
for (String a : lines) // for all strings in the list:
{
//System.out.println(a);
if(names.contentEquals(a)) // if the name is equel to one of the strings in the list it generates a hit
{
hit = "Hit!";
}else {
hit = "*"; // no hit is *
}
}
System.out.println(x.getName().replaceAll("\\.[^.]*$", "").toString() +" "+ hit); // print the results
}
}
}