я надеюсь, что вы можете помочь мне в этом, я читаю файл с несколькими строками. Я использую BufferedReader для разделения данных. Если данные 1 не совпадают с новыми входными данными 1, он будет использовать BufferedWriter для замены новых данных 1, введенных на старые данные 1. С помощью приведенного ниже кода он изменил данные 1, но добавил другие данные строки 2 и 3. Я хочу изменить только данные 1, но строки остаются прежними.
Example(Input)
abc, 123, 456, 3345
test, t245, 442, d444
dddd, 4444, ffff, 333
public void test(String DATA1, String DATA2) throws IOException{
br = new BufferedReader(new FileReader(file));
while ((CurrentLine = br.readLine()) != null) {
String[] modify = CurrentLine.split(split);
String data1 = modify[0];
String data2 = modify[1];
String data3 = modify[2];
String data4 = modify[3];
bw = new BufferedWriter(new FileWriter(file, true));
if (!data1.contains(DATA1)) {
StringBuilder sb = new StringBuilder();
while(CurrentLine != null){
sb.append(CurrentLine.replace(data1, DATA1));
sb.append("\n");
CurrentLine = br.readLine();
}
bw.write(sb.toString());
RESIDENTS_OLDDETAILS = new File(oldfile);
RESIDENTS_OLDDETAILS.delete();
RESIDENTS_NEWDETAILS = new File(newfile);
RESIDENTS_NEWDETAILS.renameTo(old);
br.close();
bw.close();
Example(Output of the above code)
newabc, t245, 442, d444
newabc, t245, 442, d444
newabc, t245, 442, d444
Expected output
aaa, 123, 456, 3345
test, t245, 442, d444
dddd, 4444, ffff, 333
Edited Expected output
aaa, 123, 456, 3345
test, t245, 442, d444
dddd, 4444, ffff, 333aaa, 123, 456, 3345
test, t245, 442, d444
dddd, 4444, ffff, 333
file
в файловой системе, которая поддерживает чтение и запись через отдельные файловые дескрипторы из одного и того же файла? - person Mike Samuel   schedule 10.05.2015