[知了堂学习笔记]_IO流之字节流和字符流

字节流

字节流的结构
字节的输入流:InputStream
字节的输出流:OutputStream
InputStream和OutputStream都是抽象类
输入流的方法:read、close、available,这些方法主要是为了读取数据,关闭IO流,计算文件的大小
输出流的方法:write、close、flush,这些方法主要是为了写数据,关闭IO流,刷新缓存

掌握IO流的用法
文件拷贝:
(1)选择使用什么类型的流(字节流,字符流)
(2)文件拷贝是一种二进制流,拷贝的过程通过读取字节完成拷贝工作
(3)选择字节流

/*
     * 拷贝文件
     */
    @Test
    public void m10() throws IOException{
        File srcFile = new File("D:\\学习视频\\课堂讲义.docx");
        File dirFile = new File("D:\\File\\Test\\课堂讲义.docx");
        InputStream is = new FileInputStream(srcFile);//创建InputStream
        OutputStream os = new FileOutputStream(dirFile);//创建OutputStream
        byte[] b = new byte[1024];//创建缓存区
        int i = -1;//判断是否读取源文件结束
        while((i = is.read(b)) != -1){
            os.write(b,0,i);//从缓存中0开始输出,到i结束
        }
        is.close();
        os.flush();
        os.close();
    }

字符流
字符流的结构
输入流:Reader,抽象类
输出流:Writer,抽象类
读取数据时通过read
写数据时通过write

读取文件中的内容
读取txt文件中的内容并输出到控制台—-读文件内容使用Reader,写入控制台用System.out.println();

/*
     * 读取txt文件中的内容并输出到控制台
     */
    @Test
    public void m11() throws IOException{
        File srFile = new File("D:\\File\\Test\\test.txt");
        Reader reader = new FileReader(srFile);//创建Reader
        char[] c = new char[1024];//存储读取到字符
        int i = -1;//标志读取源文件结束
        while((i = reader.read(c)) != -1){
            System.out.println(c);
        }
        reader.close();
    }

* 读取文件中的内容—-采用缓冲流完成文件读取*

 /*
     *  读取文件中的内容----采用缓冲流完成文件读取
     */
    @Test
    public void m12() throws IOException{
        File srFile = new File("D:\\File\\Test\\test.txt");
        Reader reader = new FileReader(srFile);//创建Reader
        BufferedReader br = new BufferedReader(reader);//构建缓冲流
        String content = null;//获取读取内容,标明结束
        while((content = br.readLine()) != null){
            System.out.println(content);
        }
        br.close();
    }

写内容到文件中

/*
     *  读取文件中的内容并写入到word文档中
     */
    @Test
    public void m13() throws IOException{
        File srcFile = new File("D:\\File\\Test\\test.txt");
        File dirFile = new File("D:\\File\\Test\\test.doc");
        Reader reader = new FileReader(srcFile);
        Writer writer = new FileWriter(dirFile);
        BufferedReader br = new BufferedReader(reader);
        BufferedWriter bw = new BufferedWriter(writer);
        String content = null;
        while((content = br.readLine()) != null){
            bw.write(content +"\b\n");
            /*bw.newLine();//行分隔符*/     
        }
        br.close();
        bw.flush();
        bw.close();
    }

请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值