gpt4 book ai didi

java - 尝试读取txt文件并将它们转换为具有不同原语的对象

转载 作者:行者123 更新时间:2023-12-02 10:08:52 26 4
gpt4 key购买 nike

我正在尝试编写一种方法,使用阅读器从纯 txt 文件(学生 ID-学生姓名-学生姓氏)中读取学生详细信息,并创建并返回相应的新学生对象。 。 txt 文件包含逐行详细信息,例如。学生 ID 位于一行,姓名位于下一行。

我尝试在 readStudent() 方法中执行此操作

class StudentInputStream{

BufferedReader in;
public StudentInputStream(InputStream input) {
in = new BufferedReader(new InputStreamReader(input));
}

@Override
public void close() throws IOException {
in.close();
}

public Student readStudent() throws IOException {
/*Student student1 = new student();*/
return null;
}
}

最佳答案

代码是不言自明的,如果您有任何疑问,请告诉我。

File file = new File("Your file's path");
Scanner sc=null;
try {
sc = new Scanner(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
ArrayList<Student> list = new ArrayList<>();
while(sc.hasNextLine()){
if(sc.nextLine().equalsIgnoreCase("student")){
//Assuming each property is in the seperate line of file
String id,name,surname=null;
if(sc.hasNextLine()){
id = sc.nextLine();
/*if id is int use
* int id = Integer.parseInt(sc.nextLine());
*/
}
if(sc.hasNextLine()){
name = sc.nextLine();
}
if(sc.hasNextLine()){
surname = sc.nextLine();
}
list.add(new Student(id,name,surname));

}
}

使用 bufferedReader:

InputStream in = new FileInputStream("Your file's path");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String str;
ArrayList<Student> list = new ArrayList<>();
while((str=br.readLine())!=null){
if(str.equalsIgnoreCase("student")){
String id=null,name=null,surname=null;
if((str=br.readLine())!=null){
id = str;
/*if id is int use
* int id = Integer.parseInt(sc.nextLine());
*/
}
if((str=br.readLine())!=null){
name = str;
}
if((str=br.readLine())!=null){
surname = str;
}
list.add(new Student(id,name,surname));
}
}

使用对象输入流

OutputStream out = new FileOutputStream("yourfilepath.bin");
ObjectOutputStream outputStream = new ObjectOutputStream(out);

Student s1 = new Student("100383", "JOHN", "MITCHELL");
Student s2 = new Student("100346", "AMY", "CHING");


outputStream.writeObject(s1);
outputStream.writeObject(s2);
outputStream.writeObject(null);//to realize that you reach the end of file

outputStream.close();
out.close();

InputStream in = new FileInputStream("yourfilepath.bin");
ObjectInputStream inputStream = new ObjectInputStream(in);

Student temp = null;

while((temp =(Student)inputStream.readObject())!=null){
System.out.println(temp.id+","+temp.name+","+temp.surname);
}

输出

100383,JOHN,MITCHELL

100346,AMY,CHING

关于java - 尝试读取txt文件并将它们转换为具有不同原语的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55142773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com