IO流(二)

23 篇文章 0 订阅

FileReader

package cn.itcast.chario;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Demo1_FileReader {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        //demo1();
        FileReader fr = new FileReader("a.txt");
        int ch;
        while((ch = fr.read()) != -1) {         //read()方法是通过编码表按照字符的大小读取
            System.out.print((char)ch);
        }

        fr.close();
    }

    public static void demo1() throws FileNotFoundException, IOException {
        FileReader fr = new FileReader("a.txt");
        int x = fr.read();                      //将char类型提升为int类型,因为文件结束标记都是-1,char取值范围0到65535,不能存储-1
        System.out.println((char)x);
        int y = fr.read();
        System.out.println(y);
        int z = fr.read();
        System.out.println(z);
        int a = fr.read();
        System.out.println(a);
        fr.close();
    }

}

FileWriter

package cn.itcast.chario;

import java.io.FileWriter;
import java.io.IOException;

public class Demo2_FileWriter {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("b.txt");            //创建字符输出流对象,关联b.txt
        fw.write(97);                                       //写出一个字符
        fw.write("你要减肥,造吗?");                               //写出一个字符串
        fw.close();                                         //关流
    }

}

缓冲区复制

package cn.itcast.chario;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo5_BufferCopy {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        //demo1();
        BufferedReader br = new BufferedReader(new FileReader("a.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));

        String line;
        while((line = br.readLine()) != null) {
            bw.write(line);
            //bw.write("\r\n");         //只支持的是windows系统
            bw.newLine();               //可以跨平台(操作系统)
        }

        br.close();
        bw.close();
    }

    public static void demo1() throws FileNotFoundException, IOException {
        BufferedReader br = new BufferedReader(new FileReader("a.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));

        int ch;
        while((ch = br.read()) != -1) {
            bw.write(ch);
        }
        br.close();
        bw.close();
    }

}

LineNumberReader

package cn.itcast.chario;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;

public class Demo6_LineNumberReader {

    public static void main(String[] args) throws IOException {
        LineNumberReader lnr = new LineNumberReader(new FileReader("b.txt"));
        String line;
        lnr.setLineNumber(100);
        while((line = lnr.readLine()) != null) {
            System.out.println(lnr.getLineNumber() + ":" + line);
        }

        lnr.close();
    }

}

字符编码

package cn.itcast.chario;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class Demo8_TransIO {

    /**
     * @param args
     * 转换流
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        //demo1();
        //demo2();
        BufferedReader br =                                                 //InputStreamReader是字节通向字符的桥梁
                new BufferedReader(new InputStreamReader(new FileInputStream("UTF-8.txt"), "UTF-8"));
        BufferedWriter bw =                                                 //OutputStreamWriter是字符通向字节的桥梁
                new BufferedWriter(new OutputStreamWriter(new FileOutputStream("GBK.txt"), "GBK"));

        int ch;
        while((ch = br.read()) != -1) {
            bw.write(ch);
        }

        br.close();
        bw.close();
    }

    public static void demo2() throws UnsupportedEncodingException,
            FileNotFoundException, IOException {
        InputStreamReader isr = 
                new InputStreamReader(new FileInputStream("UTF-8.txt"), "UtF-8");       //通过指定编码表读
        OutputStreamWriter osw = 
                new OutputStreamWriter(new FileOutputStream("GBK.txt"), "GBK");         //通过指定编码表写

        int ch;
        while((ch = isr.read()) != -1) {
            osw.write(ch);
        }

        isr.close();
        osw.close();
    }

    public static void demo1() throws FileNotFoundException, IOException {
        FileReader fr = new FileReader("UTF-8.txt");    //字节流+GBK
        FileWriter fw = new FileWriter("GBK.txt");

        int ch;
        while((ch = fr.read()) != -1) {
            fw.write(ch);
        }

        fr.close();
        fw.close();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值