Java 如何将代码数据写入文本文件
我只是做了一个简单的代码,它获取用户名和电话号码,并通过创建对象将它们保存到arraylist中。我想将这些信息(姓名和电话号码)保存到一个文本文件中,以便我可以再次获取所有旧信息。我该怎么做?这是我的密码Java 如何将代码数据写入文本文件,java,save,text-files,Java,Save,Text Files,我只是做了一个简单的代码,它获取用户名和电话号码,并通过创建对象将它们保存到arraylist中。我想将这些信息(姓名和电话号码)保存到一个文本文件中,以便我可以再次获取所有旧信息。我该怎么做?这是我的密码 import java.util.ArrayList; import java.util.Scanner; public class manager { Scanner input = new Scanner(System.in); ArrayList <object
import java.util.ArrayList;
import java.util.Scanner;
public class manager {
Scanner input = new Scanner(System.in);
ArrayList <objectclass> Test = new ArrayList <objectclass> ();
public void mainloop() {
for (int i = 0; i < 100; i++) {
String x;
System.out.println("Please Select your option");
System.out.println("............................");
System.out.println("1 ADD NAME AND NUMBER\n2 SEARCH NAME AND NUMBER \n0 EXIT");
System.out.println("............................");
x = input.nextLine();
if (x.equalsIgnoreCase("0")) {
System.out.println("Thank you!");
break;
}
if (x.equalsIgnoreCase("1")) {
String Name;
String Number;
System.out.println("Please Enter your Name below");
Name = input.nextLine();
System.out.println("Please Enter your Number below");
Number = input.nextLine();
objectclass objectclassObject = new objectclass(Name, Number);
Test.add(objectclassObject);
}
if (x.equalsIgnoreCase("2")) {
String y;
System.out.println("*** Enter your Name below for search ***");
y = input.nextLine();
for (objectclass p : Test) {
String z = p.getName();
if (z.equalsIgnoreCase(y)) {
System.out.println("Your Name is: " + p.getName() + "\nYour Number is: " + p.getNumber());
System.out.println("");
} else {
System.out.println("Contact not Found!\n");
}
}
}
}
}
}
一个简单的例子:
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter("./output.txt"));
writer.write("Hello World");
} catch (IOException e) {
System.err.println(e);
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
System.err.println(e);
}
}
}
这将在名为“output.txt”的文本文件中写入“helloworld”
检查JavaI/OAPI
你可以在网上找到很多关于这方面的教程,如:
您需要序列化对象才能将其保存到文件中 ,其实很简单 当您序列化一个对象时,您可以将其写入一个文件,然后按原样从那里加载它 编辑: 关于如何在这里使用它的示例,我想ObjectClass是您想要保存的东西,因此:
class ObjectClass implements Serializable {
String name;
String number;
//constructor , setters , getters and w.e functions .
public static void main (String args[]){
try{
ObjectClass test = new ObjectClass("test",2);
File f = new File("path to file");
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
out.writeObject(test); // this will write the object as it is onto the file
out.close();
}catch(Exception ex){}
}
}
您将无法读取数据,因为数据已序列化,但您可以将其作为对象加载,如下所示:
ObjectInputStream in = new ObjectInputStream(new File("path to file"));
ObjectClass test =(ObjectClass) in.readObject(); // u have to cast from Object to Objectclass
当程序退出时,您可能需要一个
ObjectOutputstream
通过FileOutputStream
将ArrayList写入一个文件,并使用相应的InputStreams读取ArrayList。请参阅以下链接:
您是否尝试将此数据写入文件?只要看一看java.io包,你就有了所有的信息。我已经试过了。。。。导入java.io.*;导入java.lang.*;导入java.util.*;public类creatfile{private Formatter x;public void openFile(){try{x=new Formatter(“testkyo”);}catch(异常e){System.out.println(“您有错误”);}}}}public void addRecord(){x.format();}public void closeFile(){x.close();}…现在不知道该怎么办…对不起…编辑我的帖子只是我认为值得一提的一件事:你需要学习正确的java“注释”…例如,objectclass是一个类,所以你应该将其命名为objectclass,这听起来可能不相关,但以后会对你有帮助;)你能告诉我如何使用序列化代码吗?我不理解教程是否正确我可能理解错了你的问题,你想把它们写成文本,但我被标题弄糊涂了“代码数据",我以为你想写这些对象…但这仍然是一件值得学习的事情。如果你决定使用它,我会为你编辑答案:)我想保存从用户输入中获得的名称和编号,并将它们保存到文本文件中。当我关闭代码时,所有用户输入都消失了…我想保留这些用户输入。对不起,我的英语不太好不好…可能是我弄糊涂了:我的解决方案不写文本文件,而是将它们作为序列化对象写入…如果你想写入文本数据,请使用上面的JosEdu解决方案,正如我通过阅读一些教程所了解的那样…序列化是保存代码数据的更好方法…它存储整个数据,以便以后可以使用…很好的东西。:D~
ObjectInputStream in = new ObjectInputStream(new File("path to file"));
ObjectClass test =(ObjectClass) in.readObject(); // u have to cast from Object to Objectclass