Я пытаюсь написать текстовый файл, который будет содержать только большие блоки текста, с которыми я планировал работать позже. Существует несколько комбинаций переменных, с которыми мне приходится иметь дело, и набирать их все слишком утомительно. Я попытался запустить этот код дважды, и все, что он делает, перезаписывает первую строку снова и снова, предоставляя мне последнюю комбинацию переменных. Это код.Java - Добавить текст в конец файла
import java.util.*;
import java.io.*;
public class FileWritingThing {
public static void main(String[]args) throws IOException{
String precision = null;
String criteria = null;
String specLevel = null;
String precondLevel = null;
PrintWriter writer = null;
for(int i = 0; i < 3; i++){
if(i == 0){
precision = "Precision = 4;";
}
if(i == 1){
precision = "Precision = 8;";
}
if(i == 2){
precision = "Precision = 12;";
}
for(int j = 0; j < 3; j++){
if(j == 0){
criteria = "Objective Function;";
}
if(j == 1){
criteria = "Domain;";
}
if(j == 2){
criteria = "Objective Function + Domain;";
}
for(int k = 0; k < 3; k++){
if(k == 0){
specLevel = "Speculation Level = 10000;";
}
if(k == 1){
specLevel = "Speculation Level = 100000;";
}
if(k == 2){
specLevel = "Speculation Level = 1000000;";
}
for(int l = 0; l < 3; l++){
if(l == 0){
precondLevel = "Precondition Level = 0;";
}
if(l == 1){
precondLevel = "Precondition Level = 25;";
}
if(l == 2){
precondLevel = "Precondition Level = 100;";
}
writer.println(precision + "\n" + criteria + "\n" + specLevel + "\n" + precondLevel + "\n");
}
}
}
}
writer.close();
}
}
/*try {
writer = new PrintWriter(new BufferedWriter(new FileWriter("permutations.txt", true)));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
*/
Все, что мне нужно знать, как добавить каждый блок в файл строки. Кроме того, у меня возникает какая-то странная проблема, хотя даже если я использую «\ n» для разделения списков переменных, все это отображается на одной строке независимо. Прокомментированный код внизу был первоначально включен непосредственно перед строкой «writer.println()».
Возможный дубликат? http://stackoverflow.com/questions/1625234/how-to-append-text-to-an-existing-file-in-java –
@JohnDorian Хорошо, похоже, проблема в написании этого файла, но она выиграла 'напечатайте новую строку. Опять же, текст сгруппирован. – user3308219
Попробуйте вызвать writer.println() отдельно для каждой строки, которую вы хотите, не уверен, что она будет работать, но стоит сделать снимок. Как writer.println (точность); writer.println (критерии); writer.println (specLevel); и т.д –