Java:保存变量问题
我试着让它在每次程序循环时保存到一个文件中。目前我有:Java:保存变量问题,java,Java,我试着让它在每次程序循环时保存到一个文件中。目前我有: import java.io.*; import java.lang.System; import java.util.Scanner; public class writing { public static void main(String[] args){ Scanner input = new Scanner(System.in); Scanner input1 = new Scan
import java.io.*;
import java.lang.System;
import java.util.Scanner;
public class writing {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
String FileName = input.next();
String x = input.next();
for(int i=0; i<'x'; i++){
System.out.println("Question");
String MainQ = input1.nextLine();
System.out.println("Option 1: ");
String Op1 = input1.nextLine();
System.out.println("Option 2: ");
String Op2 = input1.nextLine();
System.out.println("Option 3: ");
String Op3 = input1.nextLine();
System.out.println("Correct Answer (Option Number:) " );
String An1 = input1.next();
System.out.println("Quesiton 1:"+ MainQ);
System.out.println(""+ Op1);
System.out.println(""+ Op2);
System.out.println(""+ Op3);
String UAn1 = input1.next();
if (UAn1 == An1){
System.out.println("Incorrect");
System.out.println("Answer is: " + An1);
}else{
System.out.println("Correct");
}
try{
FileWriter fw = new FileWriter(FileName + ".txt");
PrintWriter pw = new PrintWriter(fw);
pw.println(MainQ);
pw.println(Op1);
pw.println(Op2);
pw.println(Op3);
pw.println(An1);
pw.close();
} catch (IOException e){
System.out.println("Error!");
}
}
}
}
。。。等等但它现在的工作方式是只记录最后的输入
像这样出现:
(假设我用3表示第三个问题和选项编号)
在for循环中创建
FileWriter
时,它总是覆盖内容,因此显然只保留最后的内容。你应该移动这些线
FileWriter fw = new FileWriter(FileName + ".txt");
PrintWriter pw = new PrintWriter(fw);
在
for
语句之前(并尝试/catch-block-accorringly)。在append模式下打开FileWriter
,否则它只会覆盖文本文件,而不会附加到文本文件。看
另外,正如其他人所指出的,
camelCase
是Java中变量名的约定,而不是PascalCase
,而您。问题到底是什么?包括任何异常/错误消息。没有错误消息,抱歉,问题不好。我希望每次程序循环文本文件时都是这样的:(问题1)问题示例(选项1)选项示例。。。。(问题2)问题示例(选项1)选项示例等。但是它现在的工作方式是只记录最后一次输入。如果filename
始终是相同的变量,那么将始终创建相同的文件。怎么办?那问题出在哪里?
3
3
3
3
FileWriter fw = new FileWriter(FileName + ".txt");
PrintWriter pw = new PrintWriter(fw);