/**
* A method that writes variables in a file for shows in the program.
*
* @author
* @version (1.2 2022.01.05)
*/
public void writeShowData(String fileName) throws FileNotFoundException{
String showPath = "c:\\Users\\COMPUTER\\bluej files\\projects\\chapter15\\willem\\CinemaReservationSystemFiles\\";
try
{
FileOutputStream fos = new FileOutputStream(showPath+fileName,true);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(show);
oos.flush();
oos.close();
}catch (IOException e) {
e.printStackTrace();
}
}
/**
* A method that reads variables in a file for shows setup use in the program.
*
* @author
* @version (1.2 2022.01.05)
*/
public void readShowData(String fileName) throws FileNotFoundException {
try
{ FileInputStream fis = new FileInputStream(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
List <Show>shows =(List<Show>)ois.readObject();
ois.close();
System.out.println(shows.toString());// for testing
}
catch (IOException e) {
e.printStackTrace();
}catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
行:列表
类显示不能被强制转换到类java.util.列表(等等...
我尝试了很多东西,但都没能成功。
我制作了类show和相关的类
Serializable
,然后将其写入shows.ser但是当它读取时出错了。
谁能帮我解决这个问题?
我解决了你的问题如下。首先,你需要改变你的写作方法。如果数据文件不存在,则需要为流头创建一个常规(无附加)fileoutstream
,否则将得到java。木卫一。StreamCorruptedException
(参考)<代码>文件输出流的创建方式应与下一次添加不同。
public static void writeShowData(String fileName) {
String showPath = "E:\\path\\";
try {
File file = new File(showPath + fileName);
ObjectOutputStream oos;
if(file.exists()) {
FileOutputStream fos = new FileOutputStream(file.getAbsolutePath(), true); // with reset fos
oos = new ObjectOutputStream(fos) {
protected void writeStreamHeader() throws IOException {
reset();
}
};
} else {
FileOutputStream fos = new FileOutputStream(file.getAbsolutePath()); // regular fos
oos = new ObjectOutputStream(fos);
}
oos.writeObject(show);
oos.flush();
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
其次,你需要修改你的阅读方法。如果你的FileInputStream
有数据,你需要迭代来添加你的列表。
public static void readShowData(String fileName) {
try {
FileInputStream fis = new FileInputStream("E:\\path\\" + fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
List<Show> shows = new ArrayList<>();
while (fis.available() > 0) {
Show s = (Show) ois.readObject();
System.out.println(s.number);
shows.add(s);
}
ois.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
我模拟了Jsch()类,并在下面的方法中获得了类强制转换异常。 原始方法。 联机获取Mockito异常。 例外情况: java.lang.ClassCastException:com.jcraft.jsch。频道$MockitoMock$1983492043不能转换为com.jcraft.jsch.ChannelSftp 测试用例调用方法。
例外情况: java.lang.ClassCastException:com.interconnect.library.gcm.util.checkplayServices(util.java:96),com.interconnect.library.gcm.regiseter.handleRegister(regiseter.java:53),com.interconnect.library.g
问题内容: 尝试将结果集强制转换为映射类时,我收到了hibernate类的类强制转换异常…我能够查看返回的结果集中的数据…但是它以Object []的形式返回我可以将Object []设置为List …我可以正确地进行hibernate映射吗?我从查询中获取了正确的数据,但映射不正确… 映射 映射类 参加班 主要 问题答案: 对于测试,我建议您在产生类强制转换异常的语句周围放置一个try-catc
调用AffineTransform: 它驻留在自定义形状类(YingYang)中。 当我进行调用时,当我试图从绘图面板或在类本身(如果我将返回类型更改为YingYang)中将它转换回一个YingYang时,我会得到一个类转换异常。 java.lang.ClassCastException:java.awt.Geom.Path2D$Double不能强制转换为Animation.Yingyang 任何
我想在ViewPager中的片段中设置一些TextViews。当我的片断实例化页面时,我正在它的onActivityCreated函数中设置我的TextViews。根据一些帖子,在getItemPosition中返回POSITION_NONE解决了我的问题,但因为每次都要删除所有视图,所以这不是一个有效的方法。所以我将它改为instatiateItem(ViewGroup container,in