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

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

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

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

网络:当前主机以外的网上资源数组

 

分类:网络

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

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

 

字节流:编码

 字节输入流:InputStreamspa

 字节输出流:OutputStreamunix

 

字符流的两个父类:

 字符读入流(将数据输入内存):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();
相关文章
相关标签/搜索