Java回炉之IO流(二)使用规律

Java回炉之IO流(二)使用规律

[toc]
源代码下载

文本文件到文本文件

public class TextFile2TextFile {

    public static void main(String[] args) {
        try {

            //因为是文本文件,所以用FileReader和FileWriter
            FileReader fileReader = new FileReader("a.txt");
            FileWriter fileWriter = new FileWriter("b.txt");

            //为了高效,使用带缓冲区的流
            BufferedReader bufferedReader=new BufferedReader(fileReader);
            BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);

            //写入方式:以字节为单位写入数据
            int b=0;
            while((b=bufferedReader.read())!=-1){
                bufferedWriter.write(b);
            }

            //写入方式优化:以行为单位写入数据
            String string=null;
            while((string= bufferedReader.readLine())!=null){
                bufferedWriter.write(string);
            }

            //最后记着从缓冲区写入到文件并关闭流
            bufferedWriter.flush();
            bufferedWriter.close();
            bufferedReader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

键盘输入到文本文件

public class Keyboard2TextFile {

    public static void main(String[] args) {
        try {

            //输入是键盘,使用System.in
            InputStream inputStream =System.in;
            //输出是文本文件,使用FileWriter
            FileWriter fileWriter = new FileWriter("test.txt");

            //为了高效,将输入流封装为转换流
            InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
            //为了高效,使用缓冲流再次封装
            BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
            BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);

            //写入方式:以字节为单位写入数据
            int b=0;
            while((b=bufferedReader.read())!=-1){
                bufferedWriter.write(b);
            }

            //写入方式优化:以行为单位写入数据
            String string=null;
            while((string= bufferedReader.readLine())!=null){
                bufferedWriter.write(string);
            }

            //最后记着从缓冲区写入到文件并关闭流
            bufferedWriter.flush();
            bufferedWriter.close();
            bufferedReader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

文本文件到屏幕

public class TextFile2Screen {

    public static void main(String[] args) {
        try {

            //输入是文件,使用FileReader
            FileReader fileReader= new FileReader("test.txt");
            //输出是屏幕,使用System.out
            OutputStream outputStream=System.out;

            //为了高效,将输出流封装为转换流
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
            //为了高效,使用缓冲流再次封装
            BufferedReader bufferedReader=new BufferedReader(fileReader);
            BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);

            //写入方式:以字节为单位写入数据
            int b=0;
            while((b=bufferedReader.read())!=-1){
                bufferedWriter.write(b);
            }

            //写入方式优化:以行为单位写入数据
            String string=null;
            while((string= bufferedReader.readLine())!=null){
                bufferedWriter.write(string);
            }

            //最后记着从缓冲区写入到文件并关闭流
            bufferedWriter.flush();
            bufferedWriter.close();
            bufferedReader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

键盘到屏幕

public class Keyboard2Screen {

    public static void main(String[] args) {
        try {

            //输入是键盘,使用System.in
            InputStream inputStream =System.in;
            //输出是屏幕,使用System.out
            OutputStream outputStream=System.out;

            //为了高效,将输入流封装为转换流
            InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
            OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream);
            //为了高效,使用缓冲流再次封装
            BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
            BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);

            //写入方式:以字节为单位写入数据
            int b=0;
            while((b=bufferedReader.read())!=-1){
                bufferedWriter.write(b);
            }

            //写入方式优化:以行为单位写入数据
            String string=null;
            while((string= bufferedReader.readLine())!=null){
                bufferedWriter.write(string);
            }

            //最后记着从缓冲区写入到文件并关闭流
            bufferedWriter.flush();
            bufferedWriter.close();
            bufferedReader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

带字符集的文件到文件

public class TextFile2TextFileWithCharset {

    public static void main(String[] args) {
        try {

            //输入是文本文件,所以用FileReader
            FileReader fileReader = new FileReader("a.txt");
            //输出虽是文本文件,但制定了字符集则不能使用FileWriter,需要使用OutputStreamWriter
            OutputStreamWriter outputStreamWriter= new OutputStreamWriter(new FileOutputStream("b.txt"),"utf-8");

            //为了高效,使用带缓冲区的流
            BufferedReader bufferedReader=new BufferedReader(fileReader);
            BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);

            //写入方式:以字节为单位写入数据
            int b=0;
            while((b=bufferedReader.read())!=-1){
                bufferedWriter.write(b);
            }

            //写入方式优化:以行为单位写入数据
            String string=null;
            while((string= bufferedReader.readLine())!=null){
                bufferedWriter.write(string);
            }

            //最后记着从缓冲区写入到文件并关闭流
            bufferedWriter.flush();
            bufferedWriter.close();
            bufferedReader.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值