Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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创建一个txt文件,然后用java再次读取_Java - Fatal编程技术网

用java创建一个txt文件,然后用java再次读取

用java创建一个txt文件,然后用java再次读取,java,Java,因此,我首先创建了一个由p个对象组成的人群 box1: public static Person[] createPersons(int p) { people = new Person[p]; for(int i=0; i < p; i++) { people[i] = new Person("Mr. Persons" + i, 20 + i, 'M'); } menuSelection(); return people; } 所以在

因此,我首先创建了一个由p个对象组成的人群

box1:
public static Person[] createPersons(int p) {

people = new Person[p];
    for(int i=0; i < p; i++) {
        people[i] = new Person("Mr. Persons" + i, 20 + i, 'M');
    }

    menuSelection();
    return people;
}
所以在java中,它看起来像这样:

box3:
Mr. Person0     20      M
Mr. Person1     21      M
Mr. Person2     22      M
Mr. Person3     23      M
Mr. Person4     24      M
Mr. Person5     25      M
¬í w   ur   [LPerson;4Ýd
—ì-b  xp   sr Person        I ageC genderL namet Ljava/lang/String;xp    Mt 
Mr. Person0sq ~     Mt 
Mr. Person1sq ~     Mt 
Mr. Person2sq ~     Mt 
Mr. Person3sq ~     Mt 
Mr. Person4sq ~     Mt 
Mr. Person5
try (FileInputStream fis = new FileInputStream(filePerson)) {
    ObjectInputStream ois = new ObjectInputStream(fis);
    int p = ois.readInt();
    Person[] persons = new Person[p];
    for (int i = 0; i < p; i++) {
        persons[i] = (Person)ois.readObject();
    }
    ois.close();
}
但当我打开文本文件时,它看起来是这样的:

box3:
Mr. Person0     20      M
Mr. Person1     21      M
Mr. Person2     22      M
Mr. Person3     23      M
Mr. Person4     24      M
Mr. Person5     25      M
¬í w   ur   [LPerson;4Ýd
—ì-b  xp   sr Person        I ageC genderL namet Ljava/lang/String;xp    Mt 
Mr. Person0sq ~     Mt 
Mr. Person1sq ~     Mt 
Mr. Person2sq ~     Mt 
Mr. Person3sq ~     Mt 
Mr. Person4sq ~     Mt 
Mr. Person5
try (FileInputStream fis = new FileInputStream(filePerson)) {
    ObjectInputStream ois = new ObjectInputStream(fis);
    int p = ois.readInt();
    Person[] persons = new Person[p];
    for (int i = 0; i < p; i++) {
        persons[i] = (Person)ois.readObject();
    }
    ois.close();
}

如何再次读取此文本文件?并将其设置为java中的格式(请参见第3框)

不要使用ObjectOutStream。那是计算机术语。您只需要PrintWriter。

您需要编写字符串而不是对象, 最好创建一个toString()方法并相应地使用。

您可以这样编写:

PrintWriter printWriter = new PrintWriter ("D:\\test.txt");
printWriter.println (p.getName());
printWriter.print (p.getSex());
printWriter.print (p.getAge());
printWriter.close ();  

为了读取使用
writeObject
在Java中写入文件的对象,必须在文件上使用
readObject
(属于
ObjectInputStream

遵循关于
ObjectOutputStream

writeObject方法用于将对象写入流。任何对象,包括字符串和数组,都是用writeObject编写的。可以将多个对象或基本体写入流。对象必须从相应的ObjectInputstream中以与写入对象相同的类型和顺序读回

因此,在您的情况下,您必须阅读以下内容:

box3:
Mr. Person0     20      M
Mr. Person1     21      M
Mr. Person2     22      M
Mr. Person3     23      M
Mr. Person4     24      M
Mr. Person5     25      M
¬í w   ur   [LPerson;4Ýd
—ì-b  xp   sr Person        I ageC genderL namet Ljava/lang/String;xp    Mt 
Mr. Person0sq ~     Mt 
Mr. Person1sq ~     Mt 
Mr. Person2sq ~     Mt 
Mr. Person3sq ~     Mt 
Mr. Person4sq ~     Mt 
Mr. Person5
try (FileInputStream fis = new FileInputStream(filePerson)) {
    ObjectInputStream ois = new ObjectInputStream(fis);
    int p = ois.readInt();
    Person[] persons = new Person[p];
    for (int i = 0; i < p; i++) {
        persons[i] = (Person)ois.readObject();
    }
    ois.close();
}
try(FileInputStream fis=newfileinputstream(filePerson)){
ObjectInputStream ois=新ObjectInputStream(fis);
int p=ois.readInt();
人员[]人员=新人员[p];
对于(int i=0;i
您必须读取文本文件中的每个对象,并将其转换为Person对象。Tada:)你是只想用Java阅读它,还是想用记事本阅读它?因为您使用的是使用默认序列化程序的
ObjectOutputStream
writeObject
。我只想用Java阅读它。但是我不知道从哪里开始我的代码或者类似的东西。谢谢你们的快速回答,伙计们!旧术语。。。我年轻时经常被人扔来扔去。这意味着只有计算机才能理解它。