关于导出歌单的问题

关于导出歌单的问题

老师我这样写可以吗?有没有需要改进的地方,还有就是为什么for(int i=0;i<list.size();i++)
         {
         Song song = (Song)ois.readObject();
         System.out.println(song);
         }

能够读取到所有的歌曲类信息呢?

case 8:
      System.out.println("请输入要导出的播放列表名称:");
      String strPlayListName6=sc.next();
      PlayList pl6=plc.searchPlayListByName(strPlayListName6);
      
      if(pl6==null)
      {
       System.out.println("该播放列表不存在!");
       break;
      }else {
       try {
        FileOutputStream fos = new FileOutputStream(strPlayListName6+".txt");
        ObjectOutputStream oos=new ObjectOutputStream(fos);
        FileInputStream fis=new FileInputStream(strPlayListName6+".txt");
        ObjectInputStream ois=new ObjectInputStream(fis);
        
        List<Song> list=pl6.getMusicList();
        for(int i=0;i<list.size();i++)
        {
         oos.writeObject(list.get(i));
         oos.flush();
        }
        try {
         for(int i=0;i<list.size();i++)
         {
         Song song = (Song)ois.readObject();
         System.out.println(song);
         }
        } catch (ClassNotFoundException e) {
         e.printStackTrace();
        }
        
        fos.close();
        oos.close();
        fis.close();
        ois.close();
        
       } catch (FileNotFoundException e) {
        e.printStackTrace();
       } catch (IOException e) {
        e.printStackTrace();
       }
       
      }
      break;

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

        同学你好,1、这里因为没有同学的全部代码,所以并不方便运行,但是检查同学贴出的代码并没有问题,只是有如下的一些小建议:

        注意流的关闭顺序,要先关闭外层中的流,然后关闭内层中的流,例如:

http://img1.sycdn.imooc.com//climg/5d37c8370001bb7408330137.jpg

        2、还有一个优化小建议:在存入时,是将每一个Song类型的对象,存入了文件中,那这里可否将这些歌曲存入一个集合中,再将这个集合存入文件中呐,这样读取时,只需要读取一次,一个对象就可以了哦!

        3、for(int i=0;i<list.size();i++)这是一个根据歌曲的集合长度,来决定遍历次数哦,readObject()方法是调用一次返回一个对象,再调用readObject()一次返回第二个对象,自动在每个对象后面做标记!所以当歌曲集合遍历完成,所有文件中的歌曲对象也就输出完成了哦!

          如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师