大数据学习路线分享IO流学习笔记

大数据学习路线分享IO流学习笔记-IO流(input/output):

作用:实现两个设备之间数据的传递

设备:磁盘(硬盘),内存,键盘,文件,网络,控制台

网络:当前主机之外的网上资源

 

分类:

 根据操作的方式:输入流和输出流  ---因**内存**为参考

 根据数据的类型:字节流和字符流

 

字节流:

 字节输入流:InputStream

 字节输出流:OutputStream

 

字符流的两个父类:

 字符读入流(将数据输入内存):Reader

 字符写出流(将数据从内存取出):Writer

 

实例:研究字符流

 以磁盘的数据存储为例,将数据写入文件

 分析:因为操作的是文本,所以使用字符流

 * 写入文件-----写出流------FileWriter

 * 读文件------读入流-------FileReader

 

代码:

FileWriter fileWriter = new FileWriter("test1.txt");

//注意点:

//一:如果只写文件的名字,不写具体路径,默认路径是当前的工程

//二:对于关联的文件,如果之前不存在,程序会自动创建一个,如果存在,会将原来的内容覆盖

//三:可以自己指定路径,但是必须保证路径是真实存在的,否则报异常---FileNotFountException(系统找不到指定的路径。)

 

fileWriter.write("chenchen");

//四:在执行write方法时,数据被临时放到了流对象的内部数组中,这个数组是一个字节数组,会默认去查编码表

 

//fileWriter.flush();

//刷新---将临时数组中的数据放入磁盘

 

fileWriter.close();

//关闭流--两个功能:a:关闭流  b:刷新

//第五个注意点:流对象使用完后必须关闭

 

//fileWriter.write("haha");

//第六个注意点:当流对象关闭之后,不能再进行操作,否则会报异常:Stream closed

 

//fileWriter = new FileWriter("test2.txt",true);

//文件的续写:FileWriter(String file,boolean value)

//当value位true的时候,不会将原来的内容覆盖,会接着写

 

读内容:

 实例:从文件中读取内容,并显示在控制台------FileReader

 //1.创建FileReader的对象

FileReader fileReader = new FileReader("test2.txt");

//2.读

 

 read():一个字符一个字符的读,每次读出一个字符

 read(数组):一次可以读出多个字符   ,数组的作用:每次会将读出的字符临时放到这个数组中

 /

//read():一个字符一个字符的读,每次读出一个字符

while ((num = fileReader.read())!= -1) {

System.out.println((char)num);

}

//read(数组):一次可以读出多个字符   ,数组的作用:每次会将读出的字符临时放到这个数组中

/数组是临时存放数据的地方,我们会将读到的字符放到临时数组中,数组的大小决定了我们一次可以读到的字符个数.

 一般这个数组的大小<=1kB

 返回值代表本次读到的真实的字符个数,如果返回值是-1代表读完了

        char[] arr = new char[2];

        int num = 0;

        while ((num = fileReader.read(arr)) != -1) {

            System.out.println(new String(arr,0,num)+"     num:"+num);

        }

实例:完成文件的复制

 

 将Demo1的东西复制到Demo1copy.java

 

 D:\workspace\BigDataSZ1903N19\src\com\qianfeng\test\Demo1.java:绝对路径

 BigDataSZ1903N19\src\com\qianfeng\test\Demo1.java:相对路径

 

 相对路径:从路径中间的某个部位开始一直到当前的文件

 绝对路径:一个文件的完整路径,从根目录开始到当前的文件

 

 补充知识:

 \代表转义字符      \t:制表符     \n换行符    \\:表示普通的\

 在代表路径的时候,\\与/是一个意思.

 //1.创建读入流和写出流

FileReader fileReader = new FileReader("D:\\workspace/BigData1923N19\\src\\com\\qf\\test\\Demo1.java");

FileWriter fileWriter = new FileWriter("Demo1copy.java");

 

字符缓冲流(字符缓冲区)

 定义:为了提高读写的能力,本身没有读写的能力,要想进行读写就必须借助于字符流实现.

 可以将缓冲流类比于催化剂或者高速的小车

 字符缓冲流分类:

 字符缓冲读入流:BufferedReader   没有读的能力

 字符缓冲写出流:BufferedWriter   没有写的能力

 

//0.创建字符写出流对象

//1.创建字符缓冲写出流对象

BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("text3.txt"));

//2.写

bufferedWriter.write("bingbing");

//windows系统   换行符   \r\n    linux/unix  换行符   \n

//bufferedWriter.write("\r\n");//换行

bufferedWriter.newLine();//换行---支持跨平台

bufferedWriter.write("chenchen");

//3.关闭资源 a.关闭内部的写出流     b.关闭自己   c.刷新

bufferedWriter.close();

 

//1.创建字符缓冲读入流

BufferedReader bufferedReader = new BufferedReader(new FileReader("text3.txt"));

 

//一次读一行  readline()

//原理:一个字符一个字符的读,直到读到换行符为止.然后将所有读到的字符返回

//注意点:不会将当前的换行符返回 ;返回值就是我们读到的内容.如果读完了,返回null

        String data = null;

        while ((data = bufferedReader.readLine()) != null) {

            System.out.print(data);

            //System.out.println();//换行

            System.out.print("\r\n");

        }

        bufferedReader.close();

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值