IO流

什么是流:
        流是一个抽象、动态的概念,是一连串连续动态的数据集合。

fda625c52818e5f06408ebc6f35577a583b.jpg
1. Java系统的标准输入对象是System.in,

2.标准输出对象有两个分别是标准输出System.out和标准错误输出_____System.err_

e97d61ee37adae6102eee166e7e3ce6bb11.jpg
什么是输入流:
    输入流:以当前程序为参照,从文件中读取数据到程序叫做输入流(input/reader)
什么是输出流:
    输出流:以当前程序为参照,把程序中的数据写到文件中叫做输出流(output/writer)    

e6b8477253f4a51c88307c00bd4a0d9e1ae.jpg

b8f8b173795b5825430aabedd42e59dbb17.jpg

File文件流

文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。
        File file=new File("D:/1.txt");
       File file=new File("D:/" , "1.txt"); 子父关系创建方式

c8878752b8dae84decad3c3bac817cfc6f6.jpg

字节输入输出流

字节流,主要用于对字节文件的读写,如图片,视频,等.

字节流和字符流的基类:1a04a21e9d9a08e00347630b5cd0f2d1e04.jpg

字节流和字符流的实现类:

503cfc74b1717b3cfae6e9f43893a05e973.jpg

7f8d114d3c341ff11838dfaad7c2ed4d3a3.jpg

FileinputStream

8bfc10720981787ef1fea0525562b494a99.jpg

ef19fbe4b20d85d8cbeed50f6ea1d8320d4.jpg

 * 转换流 InputStreamReader 将字节流 按照指定的编码格式 转换为字符流
 *  实际就是 将字节流中的字节 按照指定的编码格式 转换为字符
 * OutputStreamWriter 将字符流 按照指定的编码格式 转换为字节流 
 * 实际就是 将字符流中的字符 按照指定的编码格式拆分为字节 存在磁盘上
 * 如果使用的是系统默认的编码格式
 * 则可以直接使用FileReader  和 FileWriter   对文件进行读写
 * 如果需要指定编码格式   则必须要先使用字节流来读写文件   
 * 再用InputStreamReader 和OutputStreamWriter  用指定的编码格式  将字节流转换为字符流

FileOutputStream(File file/path, boolean append)

file/path 指的是文件对象或文件路径

append 指的是是否在原文件后面追加内容(true)还是删除全部内容重新写入(false).

95d76695948531f7b42768d81a36c70541a.jpg

字符输入输出流(用于对字符的读写.)

FileReader:

FileReader类从InputStreamReader类继承而来。该类按字符读取流中数据。

可以通过以下几种构造方法创建需要的对象。

在给定从中读取数据的 File 的情况下创建一个新 FileReader。

FileReader(File file)

在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。

FileReader(FileDescriptor fd)

在给定从中读取数据的文件名的情况下创建一个新 FileReader。

FileReader(String fileName)

创建FIleReader对象成功后,可以参照以下列表里的方法操作文件。

FIleReader常用方法有:

1   public int read();

读取单个字符,返回一个int型变量代表读取到的字符

2    public int read(char [] c, int offset, int len)

读取字符到c数组,返回读取到字符的个数

8a0da7566ad0ef0e6e8df573026b9c122e8.jpg

FileWriter:

 

FileWriter 类从 OutputStreamWriter 类继承而来。该类按字符向流中写入数据。

可以通过以下几种构造方法创建需要的对象。

1.在给出 File 对象的情况下构造一个 FileWriter 对象。

            FileWriter(File file)

2.在给出 File 对象的情况下构造一个 FileWriter 对象。

            FileWriter(File file, boolean append)

3.构造与某个文件描述符相关联的 FileWriter 对象。

            FileWriter(FileDescriptor fd)

4.在给出文件名的情况下构造 FileWriter 对象,它具有指示是否挂起写入数据的 boolean 值。

            FileWriter(String fileName, boolean append)

file/path 指的是文件对象或文件路径

append 指的是是否在原文件后面追加内容(true)还是删除全部内容重新写入(false).

字符处理流bufferedReader/Writer

从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值足够大。

d9d1c80ecb6b7bf0435abee4001d0d1b1f3.jpg

a94283a88844f5226b57a69b7fded85f842.jpg

字符转换流:

InputStreamReader、OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。

获得当前开发环境的字符编码方式
System.out.println(System.getProperty("file.encoding"));

ef73c32be51ebaa69055e0a5f67756e54bf.jpg

如果需要编码格式就用InputStreamReader 和OutputStreamWriter如果不用编码格式就用FileReader 和FileWriter
//  字符流     转换流                             字节流           第二个参数可以为编码格式
Reader r = new InputStreamReader(new FileInputStream("D:\\a.txt"),"UTF-8");
// 读取
char [] c = new char[1024];

int len = r.read(c);//len是读取到的字符的总个数

//向文件中写数据时按照UTF-8的编码写入
Writer w = new OutputStreamWriter(new FileOutputStream("D:\\a.txt"), "UTF-8");
//写入数据
w.write("今天星期五,明天不上班");

system.in / system.out

//键盘作为输入流的数据源
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

2368fd3bdc0605fe86b6df92fcd61479ad8.jpg

对象输入输出流:

5275cc0644abbc12714428fccb03e461c5e.jpg

51db06914d7f382fcbeb03ce29510ae7a39.jpg

 

基本数据输入输出流

需要严格按照写入顺序进行读取,否则会出现乱码.

d53826b1877392d3aa9b6e03d22961f7520.jpg

转载于:https://my.oschina.net/u/4117400/blog/3042518

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值