Java 读取文件时出错
我想制作一个名为Room的类对象的ArrayList,并将其存储到文件中。我已经成功地编写了它,但是当我将它读回ArrayList时,它给了我以下错误Java 读取文件时出错,java,arraylist,Java,Arraylist,我想制作一个名为Room的类对象的ArrayList,并将其存储到文件中。我已经成功地编写了它,但是当我将它读回ArrayList时,它给了我以下错误 error: incompatible types temp_read=filereader.readObject(); ^ required: Room found: Object 我的代码: public
error: incompatible types
temp_read=filereader.readObject();
^
required: Room
found: Object
我的代码:
public class Room implements Serializable
{
public String room_number="";
public String teacher_name="";
public String Day_of_class="";
public String class_name="";
public My_Time start_time;
public My_Time end_time;
public Room()
{
room_number="";
teacher_name="";
Day_of_class="";
class_name="";
start_time=new My_Time();
end_time=new My_Time();
}
public Room(String r_name ,String t_name ,String cl,String day,
int hr1,int min1,String am1,int hr2,int min2,String am2 )
{
room_number=r_name;
teacher_name=t_name;
Day_of_class=day;
class_name=cl;
start_time=new My_Time(hr1,min1,am1);
end_time=new My_Time(hr2,min2,am2);
}
public void file_room_writer(/* ArrayList<Room> temp_room ,*/String str )
{
/// file writing handling`enter code here`
//--------------------------------------------------
// Room a1 =temp_room;
try {
File file = new File(str+".txt");
FileOutputStream file_stream=new FileOutputStream(file);
ObjectOutputStream fileWriter = new ObjectOutputStream(file_stream);
fileWriter.writeObject(class_storing);
fileWriter.close();
}
catch(Exception e1)
{
JOptionPane.showMessageDialog(null,"Exception at file writing ");
}
}
public void file_room_reader(String str )
{
/// file handlingg
//--------------------------------------------------
ArrayList<Room> contain_room ;
try {
File file = new File(str+".txt");
FileInputStream file_stream=new FileInputStream(file);
ObjectInputStream filereader = new ObjectInputStream(file_stream);
temp_read=filereader.readObject();
contain_room=(ArrayList<Room>)filereader.readObject();
filereader.close();
}
catch(Exception e1)
{
e1.getStackTrace();
JOptionPane.showMessageDialog(null,"Exception at file Reading ");
}
}
公共教室实现可序列化
{
公共字符串室_number=“”;
公共字符串teacher_name=“”;
公共字符串Day_of_class=“”;
公共字符串class_name=“”;
公开我的时间开始时间;
公开我的时间结束时间;
公共房间()
{
房间号码=”;
教师名称=”;
第二天的第二天=”;
class_name=“”;
开始时间=新的我的时间();
结束时间=新的我的时间();
}
公共房间(字符串r_名称、字符串t_名称、字符串cl、字符串日期、,
int hr1,int min1,字符串am1,int hr2,int min2,字符串am2)
{
房间号=房间名称;
教师姓名=教师姓名;
班级的天=天;
类别名称=cl;
开始时间=新的我的时间(hr1、min1、am1);
结束时间=新的我的时间(hr2、min2、am2);
}
公共无效文件室写入程序(/*ArrayList temp\u room,*/String str)
{
///文件写入处理`在此处输入代码`
//--------------------------------------------------
//a1室=温度室;
试一试{
File File=新文件(str+“.txt”);
FileOutputStream file_stream=新的FileOutputStream(文件);
ObjectOutputStream fileWriter=新的ObjectOutputStream(文件\u流);
fileWriter.writeObject(类存储);
fileWriter.close();
}
捕获(异常e1)
{
showMessageDialog(null,“文件写入时异常”);
}
}
公共无效文件\u文件室\u读取器(字符串str)
{
///文件处理
//--------------------------------------------------
ArrayList包含_房间;
试一试{
File File=新文件(str+“.txt”);
FileInputStream file\u stream=新的FileInputStream(文件);
ObjectInputStream filereader=新的ObjectInputStream(文件\u流);
temp_read=filereader.readObject();
contain_room=(ArrayList)filereader.readObject();
filereader.close();
}
捕获(异常e1)
{
e1.getStackTrace();
showMessageDialog(null,“文件读取时异常”);
}
}
readObject方法返回一个对象-您必须尝试将其强制转换到房间中
temp_read = (Room) filereader.readObject();
readObject()
返回Object
,您必须将其向下转换为temp\u read
类型
假设Room
是temp\u read
temp_read = (Room) filereader.readObject();
这是temp_read的类型??其中声明了
temp_read
。