Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将代码数据写入文本文件_Java_Save_Text Files - Fatal编程技术网

Java 如何将代码数据写入文本文件

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

我只是做了一个简单的代码,它获取用户名和电话号码,并通过创建对象将它们保存到arraylist中。我想将这些信息(姓名和电话号码)保存到一个文本文件中,以便我可以再次获取所有旧信息。我该怎么做?这是我的密码

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