Вход:В то время как добавление в файл, если условие всегда терпит неудачу
bank_details
payee
online_system_id
transaction_id
pass_num
prev_tran_approved
bank_details
payee
online_system_id
transaction_id
prev_tran_approved
Фактический выход ниже кода.
bank_details
payee
online_system_id
transaction_id
pass_num
prev_tran_approved
online_system_id
proc_online_system_id
tran_reversed
prev_tran_approved
bank_details
payee
online_system_id
transaction_id
prev_tran_approved
online_system_id
proc_online_system_id
tran_reversed
prev_tran_approved
Ожидаемый результат:
bank_details
payee
online_system_id
transaction_id
pass_num
prev_tran_approved
proc_online_system_id
tran_reversed
bank_details
payee
online_system_id
transaction_id
prev_tran_approved
proc_online_system_id
tran_reversed
Приведенный ниже код для справки. Если условия, в которых я проверяю существующую строку в файле, всегда сохраняются, даже если строка не присутствует в файле. Зайдите в код и предложите мне изменения.
Ну, логика заключается в том, что мы должны прочитать файл, который содержит различные строки, где каждая запись разделяется пустой строкой. В зависимости от условий, которые я упомянул в блоке if, т.е. если строка online_system_id уже присутствует в файл, мы не добавим его, а если его нет, мы добавим его в конце каждого блока записи. Эта проверка должна быть выполнена в течение 4 значения, т.е. online_system_id, proc_online_system_id, tran_reversed, prev_tran_approved
String line;
File output = new File(outputDir, "post_tran.tbl");
PrintStream out = new PrintStream(new FileOutputStream(output));
BufferedReader br = new BufferedReader(new FileReader(inputFile));
while((line=br.readLine())!=null){
if(line.trim().isEmpty()) {
if(!(line.contains("online_system_id"))){
out.println("online_system_id");
}
if(!(line.contains("proc_online_system_id"))){
out.println("proc_online_system_id");
}
if(!(line.contains("tran_reversed"))){
out.println("tran_reversed");
}
if(!(line.contains("prev_tran_approved"))){
out.println("prev_tran_approved");
}
}
out2.println(line); //always print the current line
}
try{
out2.close();
br.close();
} catch (Exception ex) {
System.err.println(ex);
}
вывесить фактический вывод, пожалуйста –
Arthur Я отправляю – user3678383