用java创建一个txt文件,然后用java再次读取
因此,我首先创建了一个由p个对象组成的人群用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; } 所以在
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阅读它。但是我不知道从哪里开始我的代码或者类似的东西。谢谢你们的快速回答,伙计们!旧术语。。。我年轻时经常被人扔来扔去。这意味着只有计算机才能理解它。