Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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 读取文件时出错_Java_Arraylist - Fatal编程技术网

Java 读取文件时出错

Java 读取文件时出错,java,arraylist,Java,Arraylist,我想制作一个名为Room的类对象的ArrayList,并将其存储到文件中。我已经成功地编写了它,但是当我将它读回ArrayList时,它给了我以下错误 error: incompatible types temp_read=filereader.readObject(); ^ required: Room found: Object 我的代码: public

我想制作一个名为Room的类对象的ArrayList,并将其存储到文件中。我已经成功地编写了它,但是当我将它读回ArrayList时,它给了我以下错误

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