黑马程序员————IO流(一)

一:IO流:

IO流用来处理设备之间的数据传输

Java对数据的操作是通过流的方式

Java用于操作流的对象都在IO包中

流按操作数据分为两种:字符流和字节流

流按流向分为:输入流和输出流。

二:字符流

特点:Writer,Reader

Writer:​

​用于操作文件的Writer子类对象。FileWriter。后缀名是父类。前缀名是该类对象的功能。

例如:FileWriter fw=new FileWriter("D:\\Test.txt");​

创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。而且该文件​会被创建到指定目录下。如果该目录下已有同名文件,它将被覆盖。其实该步就是为了明确数据存放地。利用write方法将数据写到流中,利用flush方法刷新缓存中的数据,将数据刷新到目的中去。最好用close方法关闭流资源,关闭之前会刷新一次缓存中的数据。当要续写文件是传递一个true参数,代表不覆盖已有文件,并在已有文件末尾处进行操作。

例如:FileWriter fw=new FileWriter("D:​​\\Test.txt",true);

flush方法和close方法的区别:flush刷新后流可以继续使用,close方法刷新后,流会关闭。

Reader:

创建一个文件读取流对象,和指定名称的文件相关联​,要保证这个文件是存在的,否则会报FileNotFoundException。调用读取流对象的read方法,获取数据信息。

例如:FileReader fr=new FileReader("D:\\Test.txt");

            int ch=0;

            while(ch=fr.read()){                                                                                    System.out.println(char(ch));                                                                                        }​

​运用实例:

​三:字符流的缓冲区

缓冲区的出现提高了对数据​的读写效率。                                                                         对应的类:                                                                                                           BufferedReader    BufferedWriter                                                                  缓冲要结合流才可以使用。在流的基础上对流进行了增强。

BufferWriter:

创建一个字符写入流对象,为了提高字符写入流的效率,加入了缓冲技术,只要将需要被提高效率的流作为参数传入缓冲区的构造函数即可。

FileWriter fw=new FileWriter("D:\\copy.txt")​;

BufferedWriter bw=new BufferedWriter(fw);​

使用缓冲区要记得使用flush方法,关闭缓冲区就是关闭流对象。

BufferReader:

该缓冲区提供了一个一次读一行的方法readLine(),方便于对文本数据的获取。

运用实例:​

​四:字节流

字节流和字符流的基本操作是相同的,它不仅可以操作文本数据,还可以操作其他媒体类文件。

运用实例:

​转换流:字符流与字节流之间的桥梁,方便了字符流与字节流之间的转换操作。

键盘录入:BufferedReader br= new BufferedReader(new InputStreamReader(System.in))

控制台输出:BufferedWriter bw=  new BufferedWriter(new OutputStreamWriter(System.out))       

​五:流的操作规律

1,想把键盘录入的数据打印到控制台

源:键盘录入。

目的:控制台。

2,

需求:想把键盘录入的数据存到一个文件中​

源:键盘

目的:文件

3,

需求:想把一个文件数据打印到控制台

源:文件

目的:控制台

通过两个明确来完成选用流对象

1.明确源和目的。

    源:输入流。InputStream Reader

    目的:输出流。OutputStreamWriter

2.操作的数据是否是纯文本。

  是:字符流。

  不是:字节流。

3.当体系明确后,再明确要使用那个具体对象。通过设备来进行区分:

源设备:内存,硬盘,键盘​

目的设备:内存,硬盘,控制台​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值