Мне нужно найти слово «тест» в файле. Файл, который я использую, является текстовым файлом, но я буду использовать его для двоичных файлов.Java: поиск конкретных байтов в двоичном файле и замена или удаление указанных байтов
Следующий код выглядит так, как будто он работает для меня, но он не работает. Я могу отображать экземпляры «теста» в файле, но я не могу получить его в основном. Не записывать «тест» в созданный файл.
Любая помощь пожалуйста?
public static void makelabels(){
File file = new File("test.txt");
// Check if File Exists.
if(file.exists()){
//Do work boy!!!!
int length = (int) file.length();
System.out.println("\nFile Length is "+length+" bytes");
try{
byte[] bytes = new byte[length];
int i = 0;
int count = 0;
char c;
FileInputStream input = new FileInputStream(file);
FileOutputStream output = new FileOutputStream("test2.txt");
input.read(bytes);
for(byte b:bytes){
c = (char) b;
if(Character.toString(c).equals("t")){
if(Character.toString((char) bytes[i+1]).equals("e")){
if(Character.toString((char) bytes[i+2]).equals("s")){
if(Character.toString((char) bytes[i+3]).equals("t")){
count++;
System.out.println("Found TEST " + count +" times");
}
else{
output.write(b);
}
}
else{
output.write(b);
}
}
else{
output.write(b);
}
}
else{
output.write(b);
}
i++;
}
System.out.println("\n\n");
System.out.println("Test Results\n\n");
input.close();
output.close();
return;}
catch(FileNotFoundException ex){
System.out.println("\nFile Not Found");
}
catch(IOException ex){
System.out.println("\nCan't Read File");
}
}
else{
System.out.println("\nFile Not Found!");
return;
}
}
Спасибо за помощь, которую вы можете предложить.
У меня проблемы с массивом.
Вот содержимое тестового файла.
"this is a test
Please test me"
Вот мои результаты
"this is a est
Please est me"
код имеет смысл для меня, и на самом деле кажется, что это должно работать, но я не имею никакой удачи.
Ошибка, которую вы получаете, иногда важнее, чем стена кода. –
Этот код получит «ArrayIndexOutOfBoundsException.» Странно, что вы не упомянули об этом. Необъяснимо. – EJP
Я обновил вопрос. Но для EJP проблем с массивом нет. Спасибо в любом случае :) – hackn101