使用修改的DataInputStreams进行Java读/写
这是我必须处理的样本。我花了大约30分钟,但找不到任何关于如何使用这门课的全面信息 让我解释一下我们需要做什么。有一个数据库类,它将“学生”的数据存储在链接列表中。在main方法中,我们使用数据库类中的add()方法将学生添加到列表中。数据库类有写和读上述文件的方法,但我现在不知道该怎么做。指示指出:使用修改的DataInputStreams进行Java读/写,java,io,fileinputstream,datainputstream,Java,Io,Fileinputstream,Datainputstream,这是我必须处理的样本。我花了大约30分钟,但找不到任何关于如何使用这门课的全面信息 让我解释一下我们需要做什么。有一个数据库类,它将“学生”的数据存储在链接列表中。在main方法中,我们使用数据库类中的add()方法将学生添加到列表中。数据库类有写和读上述文件的方法,但我现在不知道该怎么做。指示指出: 必须打开一个新的文件流 “应缓冲”-不确定这意味着什么 包含的类StudentRecordReader应使用所述缓冲区 public boolean readFromFile(String fil
public boolean readFromFile(String fileName){
boolean success = false;
Student s = null;
try{
//Need to open a file stream
File file = new File(fileName);
if(!file.exists()){
file.createNewFile();
}
//Should be then buffered
DataInputStream in = new DataInputStream(new BufferedInputStream(new
FileInputStream(file)));
StudentRecordReader r;//this should work with a buffered stream
r = new StudentRecordReader(in);
r.close();
}catch(IOException e){
e.printStackTrace();
}
return success;
}
我认为StudentRecordReader必须打开一个缓冲输入流
DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(path)))
然后从文件中读取学生字段,例如
String name = dis.readUTF();
String address = dis.readUTF();
然后根据这些数据创建一个学生
new Student(name, address);
然后读下一个学生…,这很有意义。我的问题主要是它如何与调用它的方法联系在一起。如何在输入流中进行发送?注意我添加了上面的read方法。在//应该被缓冲行之后,您应该添加新的BufferedInputStream(新的FileInputStream(file));最后一个问题。如果传入(InputStream in),我将如何读取上述学生记录流?您将向StudentReader(而不是DataInputStream)传递InputStream,并在StudentReader中创建新的DataInputStream(in)。顺便说一句,在你最初的版本中是这样的,这似乎是因为我在里面放了一个不同的类。我们使用两个类。第一个用于创建所述流。第二个用于处理它。现在在上面的那个就是创建流的那个。至少我现在是这样理解的。