Здравствуйте! Задача добавить следующую строку после определенной, но у меня почему то выходит именно замена следующей строки, но самое главное возникают лишние значки (как я понимаю из за кодировки?!) и заменяются первые буквы следующей строки(.
public class WorkWithFile {
private String path;
private RandomAccessFile file;
public WorkWithFile(String path) {
this.path = path;
}
//str строка, полсе которой надо будет добавить строку str_add
public void replaceAfterString(String str, String str_add) throws IOException {
RandomAccessFile file = new RandomAccessFile(path, "rw");
String str_read;
while ((str_read = file.readLine()) != null) {
String utf8 = new String(str_read.getBytes("ISO-8859-1"), "UTF-8");
if (utf8.equals(str)) {
file.write(str_add.getBytes());
file.writeChars("\n");
}
}
file.close();
}
}
public class ChangeText {
private static WorkWithFile work;
public static void main(String[] args) throws IOException {
work = new WorkWithFile("D:/other/Text/primer.txt");
work.replaceAfterString("123 45", "алло");
}
}
Вот что лежит в файле primer.txt
Шла Саша по шоссе
и смотрела фильмы
123 45
всё
Это должно работать!
Сборка персонального компьютера от Artline: умный выбор для современных пользователей