为什么运行时显示找不到文件,而且程序并没有因异常而终止
public void exportPlayList() {
try {
File file=new File(this.getPlayListName()+"的歌单.txt");
file.createNewFile();
FileInputStream fis;
BufferedInputStream bis;
InputStreamReader isr;
FileOutputStream fos;
BufferedOutputStream bos;
OutputStreamWriter osw;
for(int i=0;i<this.getMusicList().size();i++) {
String str=((Song)(this.getMusicList().get(i))).toString();
fis=new FileInputStream(str);
bis=new BufferedInputStream(fis);
isr=new InputStreamReader(bis);
fos=new FileOutputStream(file);
bos=new BufferedOutputStream(fos);
osw=new OutputStreamWriter(bos);
int n=0;
char[] cha=new char[100];
while((n=isr.read(cha))!=-1){
String s=new String(cha,0,n);
osw.write(s);
osw.flush();
}
fis.close();
bis.close();
isr.close();
fos.close();
bos.close();
osw.close();
}
}catch (FileNotFoundException e1) {
e1.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
正在回答
你应该是异常之前的代码先执行了吧,然后才出现的异常。下面的代码中,是把歌曲信息转换为字符串作为文件名,而存储的时候是xxx的歌单.txt。所以肯定会找不到文件。
String str=((Song)(this.getMusicList().get(i))).toString();
fis=new FileInputStream(str);
这个题目的功能这么实现,把歌曲Song进行序列化,然后把歌曲的信息写入到文件中就可以了,不用再读取出来就行。
如果想进行读取,那么就把播放列表类也进行序列化,然后把播放列表写入到文件。再用读取序列化对象的方法把播放列表对象读出来,然后把歌曲再从播放列表中取出来。
祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星