Java 为什么可以';我是否将数据存储在.txt文件中?
这是我正在开发的一个锻炼应用程序。其想法是创建一个帐户(文本文件)并将输入的数据存储在其中。这是我到目前为止所拥有的Java 为什么可以';我是否将数据存储在.txt文件中?,java,file,class,oop,instance,Java,File,Class,Oop,Instance,这是我正在开发的一个锻炼应用程序。其想法是创建一个帐户(文本文件)并将输入的数据存储在其中。这是我到目前为止所拥有的 public static void main(String[] args) { boolean start = true; while (start == true) { CreateNewMember(); start = DecideToAddOrQuit(); } } public static void
public static void main(String[] args) {
boolean start = true;
while (start == true) {
CreateNewMember();
start = DecideToAddOrQuit();
}
}
public static void CreateNewMember() {
Scanner keyboard = new Scanner(System.in);
out.println("Enter a username: ");
String input = keyboard.nextLine();
createMember member = new createMember(input);
member.setMembership();
member.setInfo();
}
public static boolean DecideToAddOrQuit() {
Scanner keyboard = new Scanner(System.in);
out.println("\nPress 1 if you want to continue adding data.");
out.println("Press any other key if you want to leave.");
String decision = keyboard.nextLine();
if (decision.equals("1")) {
out.println("");
return true;
} else {
out.println("Goodbye!");
return false;
}
}
下面是负责向文件中添加数据的类:
public class createMember {
public String name;
private String fullName;
private String age;
private String experience;
private Formatter x;
public createMember(String name) {
this.name = name;
}
public void setMembership() {
try {
x = new Formatter(name);
out.println("File with name \"" + name + "\" has been created!");
} catch (Exception e) {
out.println("Could not create username.");
}
}
public void setInfo () {
Scanner keyboard = new Scanner(System.in);
String fullNameIn, ageIn, experienceIn;
out.println("Enter your Full Name");
fullNameIn = keyboard.nextLine();
fullName = fullNameIn;
out.println("Enter your Age");
ageIn = keyboard.nextLine();
age = ageIn;
out.println("Enter your lifting experience\n");
experienceIn = keyboard.nextLine();
experience = experienceIn;
x.format("%s\t%s\t%s", fullName, age, experience );
}
}
我输入的值(全名、年龄、经验)不存储在用户名文件中。如何修复此问题及其原因?如果您希望在程序运行时写入输出,您可能看不到它,因为
格式化程序
您必须在处理完文件(
x.close()
)后写入该文件,以便写入任何剩余的缓冲数据(即使在程序退出时,也不会自动写入)。另外,如果您希望立即写入输出,则在您写入一行(x.flush()
)后立即写入输出。如果您希望在程序运行时写入输出,您可能看不到它,因为格式化程序
您必须在处理完文件(
x.close()
)后写入该文件,以便写入任何剩余的缓冲数据(即使在程序退出时,也不会自动写入)。另外,如果您希望立即写入输出,则在您写入一行(x.flush()
)后立即写入输出。如果您希望在程序运行时写入输出,您可能看不到它,因为格式化程序
您必须在处理完文件(
x.close()
)后写入该文件,以便写入任何剩余的缓冲数据(即使在程序退出时,也不会自动写入)。另外,如果您希望立即写入输出,则在您写入一行(x.flush()
)后立即写入输出。如果您希望在程序运行时写入输出,您可能看不到它,因为格式化程序
您必须在处理完文件(
x.close()
)后写入该文件,以便写入任何剩余的缓冲数据(即使在程序退出时,也不会自动写入)。另外,如果您希望立即实际写入输出,则在您写入一行(x.flush()
)后立即写入。这个问题不是最清楚的,但就我而言,您从未告诉过任何人将数据实际写入文件。您应该使用PrintWriter
。这将把您想要的数据加载到文件中。另外,在代码中,永远不会创建文件
import java.io.PrintWriter;
public class createMember {
public String name;
private String fullName;
private String age;
private String experience;
// private Formatter x; not quite sure what this does. There seems to be no need for it.
PrintWriter write;
File f;
public createMember(String name) {
this.name = name;
}
public void setMembership() throws Exception {
try {
// x = new Formatter(name);
f = new File (name);
f.createNewFile(); // This throws a HeadlessException (i believe, as it might be a FileNotFoundException instead)
out.println("File with name \"" + name + "\" has been created!");
} catch (Exception e) {
out.println("Could not create username.");
}
}
public void setInfo () throws Exception {
Scanner keyboard = new Scanner(System.in);
String fullNameIn, ageIn, experienceIn;
write = new PrintWriter(f.toString()); // This throws a FileNotFoundException
out.println("Enter your Full Name");
fullNameIn = keyboard.nextLine();
fullName = fullNameIn;
write.println (fullName);
out.println("Enter your Age");
ageIn = keyboard.nextLine();
age = ageIn;
write.println(age);
out.println("Enter your lifting experience\n");
experienceIn = keyboard.nextLine();
experience = experienceIn;
write.println(experience);
//x.format("%s\t%s\t%s", fullName, age, experience );
write.close(); // Be sure to close it, or it gives a warning and the file is never written.
}
}
我希望这就是你所寻找的,并且快乐地编码 这个问题不是最清楚的,但就我而言,你根本没有告诉过任何人将数据写入文件。您应该使用
PrintWriter
。这将把您想要的数据加载到文件中。另外,在代码中,永远不会创建文件
import java.io.PrintWriter;
public class createMember {
public String name;
private String fullName;
private String age;
private String experience;
// private Formatter x; not quite sure what this does. There seems to be no need for it.
PrintWriter write;
File f;
public createMember(String name) {
this.name = name;
}
public void setMembership() throws Exception {
try {
// x = new Formatter(name);
f = new File (name);
f.createNewFile(); // This throws a HeadlessException (i believe, as it might be a FileNotFoundException instead)
out.println("File with name \"" + name + "\" has been created!");
} catch (Exception e) {
out.println("Could not create username.");
}
}
public void setInfo () throws Exception {
Scanner keyboard = new Scanner(System.in);
String fullNameIn, ageIn, experienceIn;
write = new PrintWriter(f.toString()); // This throws a FileNotFoundException
out.println("Enter your Full Name");
fullNameIn = keyboard.nextLine();
fullName = fullNameIn;
write.println (fullName);
out.println("Enter your Age");
ageIn = keyboard.nextLine();
age = ageIn;
write.println(age);
out.println("Enter your lifting experience\n");
experienceIn = keyboard.nextLine();
experience = experienceIn;
write.println(experience);
//x.format("%s\t%s\t%s", fullName, age, experience );
write.close(); // Be sure to close it, or it gives a warning and the file is never written.
}
}
我希望这就是你所寻找的,并且快乐地编码 这个问题不是最清楚的,但就我而言,你根本没有告诉过任何人将数据写入文件。您应该使用
PrintWriter
。这将把您想要的数据加载到文件中。另外,在代码中,永远不会创建文件
import java.io.PrintWriter;
public class createMember {
public String name;
private String fullName;
private String age;
private String experience;
// private Formatter x; not quite sure what this does. There seems to be no need for it.
PrintWriter write;
File f;
public createMember(String name) {
this.name = name;
}
public void setMembership() throws Exception {
try {
// x = new Formatter(name);
f = new File (name);
f.createNewFile(); // This throws a HeadlessException (i believe, as it might be a FileNotFoundException instead)
out.println("File with name \"" + name + "\" has been created!");
} catch (Exception e) {
out.println("Could not create username.");
}
}
public void setInfo () throws Exception {
Scanner keyboard = new Scanner(System.in);
String fullNameIn, ageIn, experienceIn;
write = new PrintWriter(f.toString()); // This throws a FileNotFoundException
out.println("Enter your Full Name");
fullNameIn = keyboard.nextLine();
fullName = fullNameIn;
write.println (fullName);
out.println("Enter your Age");
ageIn = keyboard.nextLine();
age = ageIn;
write.println(age);
out.println("Enter your lifting experience\n");
experienceIn = keyboard.nextLine();
experience = experienceIn;
write.println(experience);
//x.format("%s\t%s\t%s", fullName, age, experience );
write.close(); // Be sure to close it, or it gives a warning and the file is never written.
}
}
我希望这就是你所寻找的,并且快乐地编码 这个问题不是最清楚的,但就我而言,你根本没有告诉过任何人将数据写入文件。您应该使用
PrintWriter
。这将把您想要的数据加载到文件中。另外,在代码中,永远不会创建文件
import java.io.PrintWriter;
public class createMember {
public String name;
private String fullName;
private String age;
private String experience;
// private Formatter x; not quite sure what this does. There seems to be no need for it.
PrintWriter write;
File f;
public createMember(String name) {
this.name = name;
}
public void setMembership() throws Exception {
try {
// x = new Formatter(name);
f = new File (name);
f.createNewFile(); // This throws a HeadlessException (i believe, as it might be a FileNotFoundException instead)
out.println("File with name \"" + name + "\" has been created!");
} catch (Exception e) {
out.println("Could not create username.");
}
}
public void setInfo () throws Exception {
Scanner keyboard = new Scanner(System.in);
String fullNameIn, ageIn, experienceIn;
write = new PrintWriter(f.toString()); // This throws a FileNotFoundException
out.println("Enter your Full Name");
fullNameIn = keyboard.nextLine();
fullName = fullNameIn;
write.println (fullName);
out.println("Enter your Age");
ageIn = keyboard.nextLine();
age = ageIn;
write.println(age);
out.println("Enter your lifting experience\n");
experienceIn = keyboard.nextLine();
experience = experienceIn;
write.println(experience);
//x.format("%s\t%s\t%s", fullName, age, experience );
write.close(); // Be sure to close it, or it gives a warning and the file is never written.
}
}
我希望这就是你所寻找的,并且快乐地编码 如果你不知道出了什么问题,那么你怎么知道它不起作用?也就是说,你至少能告诉我们你有什么问题吗?我很抱歉说不清楚。我现在在底部添加了更多信息。“我输入的值未存储在用户名文件中。我如何修复此问题以及为什么会发生?”现在-无。我要存储的值是全名、年龄和经验。它们位于public void setInfo()方法中。如果在程序仍在运行时通过文本编辑器检查文件,则可能需要与格式化程序联系以查看文件中的数据。如果不知道发生了什么问题,则如何知道它不工作?也就是说,你至少能告诉我们你有什么问题吗?我很抱歉说不清楚。我现在在底部添加了更多信息。“我输入的值未存储在用户名文件中。我如何修复此问题以及为什么会发生?”现在-无。我要存储的值是全名、年龄和经验。它们位于public void setInfo()方法中。如果在程序仍在运行时通过文本编辑器检查文件,则可能需要与格式化程序联系以查看文件中的数据。如果不知道发生了什么问题,则如何知道它不工作?也就是说,你至少能告诉我们你有什么问题吗?我很抱歉说不清楚。我现在在底部添加了更多信息。“我输入的值未存储在用户名文件中。我如何修复此问题以及为什么会发生?”现在-无。我要存储的值是全名、年龄和经验。它们位于public void setInfo()方法中。如果在程序仍在运行时通过文本编辑器检查文件,则可能需要与格式化程序联系以查看文件中的数据。如果不知道发生了什么问题,则如何知道它不工作?也就是说,你至少能告诉我们你有什么问题吗?我很抱歉说不清楚。我现在在底部添加了更多信息。“我输入的值未存储在用户名文件中。我如何修复此问题以及为什么会发生?”现在-无。我要存储的值是全名、年龄和经验。它们位于public void setInfo()方法中。如果您在程序仍在运行时通过文本编辑器检查文件,则可能需要与格式化程序联系以查看文件中的数据。问题在于没有close()。谢谢你,杰森!不