A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void main(String[] args) throws IOException {
  2.                 String path = input();
  3.                 String ex=path.substring( path.lastIndexOf("."));
  4.                 try(
  5.                         BufferedInputStream fis = new BufferedInputStream(new FileInputStream(path));
  6.                         BufferedOutputStream fos=new BufferedOutputStream(new FileOutputStream("copy."+ex));
  7.                                 ){
  8.                         int x=0;
  9.                         while ((x=fis.read())!=-1) {
  10.                                 fos.write(x);
  11.                         }
  12.                 }
  13.                 first(path,ex);
  14.         }

  15.         private static String input() {
  16.                 Scanner sc=new Scanner(System.in);
  17.                 String path=sc.nextLine();
  18.                 return path;
  19.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
问题补充:那个first()不要考虑,是我写的别的方法和这个没关系.
回复 使用道具 举报
你那个扩展名不知道传进来的是什么内容,这种写法没什么问题,

但是你fos.write(x);这是写的什么啊,0?你查一下API看看字符流的发送格式。
回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
BufferedOutputStream 是缓冲流,将读取的内容放在了缓冲区,你需要刷新一下,fos.flush().这个问题确实有点郁闷.我之前也遇到过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马