【发布时间】:2013-12-08 09:35:22
【问题描述】:
我正在尝试将用户输入的结果打印到一个简单的文本文件中,但我尝试过的所有操作都失败了。我尝试在 switch 案例中使用 PrintWriter,但结果仍然只是打印出 null。我对Java很陌生,所以也许我缺少明显的东西? 代码如下:
package parkingsystem;
import java.io.*;
import java.util.Scanner;
public class Registration {
static String [][] userData;
static String [][] fileData;
public static void Registration(){
Scanner input = new Scanner(System.in);
String lotNo;
String First;
String Last;
String studentID;
String phoneNo;
String email;
String carNo;
String dateReg;
String strcontent;
String proceed;
boolean proceed2 = true;
userData = new String [50][6];
fileData = new String [50][6];
int counter = 0;
int col;
int row;
boolean carry_on = true;
MainMenu choices = new MainMenu();
while(proceed2=true){
System.out.println("Press Y/y to add a new user");
System.out.println("Press N/n to return to menu");
proceed = input.nextLine();
switch (proceed) {
case "Y":
case "y":
System.out.println("Enter your student ID");
studentID = input.nextLine();
System.out.println("Enter your first name");
First = input.nextLine();
System.out.println("Enter your last name");
Last = input.nextLine();
System.out.println("Enter your car number");
carNo = input.nextLine();
System.out.println("Enter your contact number");
phoneNo = input.nextLine();
System.out.println("Enter your email address");
email = input.nextLine();
row = counter ;
userData [row][0] = studentID;
userData [row][1] = First;
userData [row][2] = Last;
userData [row][3] = carNo;
userData [row][4] = phoneNo;
userData [row][5] = email;
if (counter == 6){
carry_on=false;
}
proceed2 = false;
break;
case "N":
case "n":
choices.Menus();
break;
}
}
}
}
【问题讨论】:
-
每当你写
if(boolean = true)时,Java 程序员就会死去……这是一个赋值操作,总是返回true。你需要if(boolean == true),或者实际上是if(boolean)。 -
这是鲍里斯指出的违规行:while(proceed2=true)。您应该在(proceed2)时重写它。如果您在写入文件时需要帮助,请查看Java Tutorial。
-
除了鲍里斯所说的,你得到什么样的错误?
-
这段代码存在多层问题。这段代码需要重构。 en.wikipedia.org/wiki/Code_refactoring。我将尝试做一些简单的重构,这将有助于解释您目前正在学习的一些 Java 语言问题,然后我会提出进一步的建议。
-
无意冒犯任何人,但感谢您的提示。我意识到代码非常混乱。至于将其打印到文件中,有什么想法吗?
标签: java arrays string text printwriter