Java输入输出流代码示例

写在前面:

  该博文是为文章http://blog.csdn.net/whardl_yu/article/details/53223807补充的代码示例。主要为输入输出流的一些基础操作。

一、

功能:将指定的TXT文件复制一份。
类和方法:FileReader/FileWriter;read()/writer()
说明:1、为减少代码量,我选择直接抛出异常,而不是用try-catch-finally包裹(本文代码都是这样),实际操作中建议使用try-catch-finally包裹,close方法放在finally语句中。
   2、TXT文件为纯文本文件,建议使用字符流。
代码:

public void copyTXT1() throws IOException {
        FileReader reader = null;
        FileWriter writer = null;
        // 打开文件,创建流对象
        reader = new FileReader("h://file.txt");
        writer = new FileWriter("h://file2.txt");
        // 处理流对象
        int read;//存放read方法的返回值
        while ((read = reader.read()) != -1) {// 返回值为-1, 表示到达流的末尾,读取结束。
            writer.write(read);
        }
        // 在finally中关闭流对象,释放资源
        if (reader != null) {
            reader.close();
        }
        if (writer != null) {
            writer.close();
        }
二、

功能:将指定的TXT文件复制一份。
类和方法:FileReader/FileWriter; read(char[] c)/writer(char[] c)
说明:与一所用的方法不同。
代码:

public void copyTXT2() throws IOException {

        FileReader fr = null;
        FileWriter fw = null;
        //打开文件,创建流对象
        fr = new FileReader("h://file.txt");
        fw = new FileWriter("h://file3.txt");
        //处理数据
        char[] cbuf = new char[1024];
        while(fr.read(cbuf) != -1) {
            fw.write(cbuf);
        }
        //关闭流,释放资源。
        fr.close();
        fw.close();
    }
三、

功能:将指定的TXT文件复制一份。
类和方法:FileReader/FileWriter/BufferedReader/BufferedWriter ; readLine()/writer()
说明:用缓冲流包装。
代码:

public void copyTXT3() throws IOException {
        FileReader fr = new FileReader("h://file2.txt");
        //使用BufferedReader包装FileReader
        BufferedReader br = new BufferedReader(fr);
        FileWriter fw = new FileWriter("h://file4.txt");
        //使用BufferedWriter包装FileReader
        BufferedWriter bw = new BufferedWriter(fw);

        String line;//存放readLine方法的返回值
        while((line = br.readLine()) != null) {//readLine方法读到末尾的返回值为null,不是-1!
            System.out.println(line);
            bw.write(line);
            //readLine方法的返回值不包含任何终止符,因此要写入一个行分隔符。
            bw.newLine();
        }
        //关闭输出流前记得刷新
        bw.flush();
        //此时只用关闭缓冲流即可,被包装的流会自动关闭。
        br.close();
        bw.close();
    }
四、

功能:在指定TXT文件后面追加文字。
类:FileWriter
代码:

public static void main(String[] args) throws IOException {
        FileWriter f = new FileWriter("H://file.txt", true);//true表示在文本最后追加
        f.write("yuyuyu");
        f.close();
    }
五、

功能:将指定的MP3文件复制一份。
类和方法:FileInputStream/FileOutputStream ;read(byte[] b)/writer(byte[] b)
说明:音频文件不是纯文本文件,不可以使用字符流。如果使用字符流,最后得到的文件不可用。
代码:

public void copyMp3() throws IOException{
        FileInputStream fis = null;
        FileOutputStream fos = null;
        //打开文件,创建流对象
        fis = new FileInputStream("h://欢乐颂.mp3");
        fos = new FileOutputStream("h://欢乐颂2.mp3");
        //处理数据
        byte[] bbuf = new byte[1024];
        while(fis.read(bbuf) != -1){// 返回值为-1, 表示到达流的末尾,读取结束。
            fos.write(bbuf);
        }
        //关闭输入输出流,释放资源
        fis.close();
        fos.close();
    }
六、

功能:将指定的MP3文件复制一份。
类和方法:FileInputStream/FileOutputStream/BufferedOutputStream/BufferedInputStream ;read(byte[] b)/writer(byte[] b)
说明:用缓冲流包装。
代码:

public void copyMP3() throws IOException {
        //创建流,并进行包装
        FileInputStream fis = new FileInputStream("h://欢乐颂.mp3");
        BufferedInputStream bis = new BufferedInputStream(fis);
        FileOutputStream fos = new FileOutputStream("h://欢乐颂3.mp3");
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        byte[] bbuf = new byte[1024];
        while(bis.read(bbuf) != -1) {
            bos.write(bbuf);
        }
        //刷新
        bos.flush();
        //关闭流
        bos.close();
        bis.close();
    }
七、

功能:创建指定编码格式的文件。
类和方法:FileOutputStream/OutputStreamWriter/BufferedWriter
代码:

public void creatFile() throws IOException {
        FileOutputStream fs = new FileOutputStream("h://newFile.txt");
        OutputStreamWriter osw = new OutputStreamWriter(fs, "utf-8");
        BufferedWriter bw = new BufferedWriter(osw);
        bw.write("大家好!");
        bw.flush();
        bw.close();
    }
八、

功能:用指定的编码格式写入文件。
类和方法:FileInputStream/InputStreamReader/BufferedReader
代码:

public void openFile() throws IOException {
        FileInputStream fis = new FileInputStream("h://newFile.txt");
        InputStreamReader isr = new InputStreamReader(fis, "utf-8");
        BufferedReader br = new BufferedReader(isr);
        String s;
        while((s = br.readLine()) != null) {
            System.out.println(s);
        }
        br.close();
    }
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值