caizhen66 2017-03-24 16:25 采纳率: 28.6%
浏览 1768

JAVA字节流复制文本的内容到另个文本。请大神指点

出现报错byte words[] =new char[1024];
改后byte words[] =new byte[1024];复制是成功但内容是乱码。

package Test2;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**

  • @param args
  • 上机练习2:(复制文本文件)247页
    */
    public class FileInorOut2 {

    public static void main(String[] args) {
    //声明流对象
    FileInputStream fis=null;
    FileOutputStream fos=null;
    try {
    //1、创建输入流对象,负责读取内容
    fis=new FileInputStream("G:/我的青春谁做主.txt");
    //2、创建输出流对象,将写入内容
    fos=new FileOutputStream("E:/myFile/myPrime.txt");
    //3、创建中转站数组,存放每次读取的内容
    byte words[] =new byte[1024];
    //4、通过循环实现文件读写
    while ((fis.read())!=-1) {
    fis.read (words); //读取文件
    fos.write(words,0,words.length);//写入文件
    }
    System.out.println("内容复制成功!");
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    //5、关闭流
    try {
    if (fis!=null) {
    fos.close();
    }
    if (fos!=null) {
    fis.close();
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    }

}

  • 写回答

3条回答

  • 逗比123号 2017-03-27 06:50
    关注

    while ((fis.read())!=-1) {
    fis.read (words); //读取文件
    fos.write(words,0,words.length);//写入文件
    }
    改为
    int s;
    while ((s=fis.read(words))!=-1) {
    fos.write(words,0,s);//写入文件
    }
    试试

    评论

报告相同问题?

悬赏问题

  • ¥15 Pwm双极模式H桥驱动控制电机
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题