现在的位置: 首页 > 综合 > 正文

黑马程序员—–IO的学习

2018年01月11日 ⁄ 综合 ⁄ 共 1466字 ⁄ 字号 评论关闭

------- android培训java培训、期待与您交流! ----------

IO的学习

字符流中的基本父类:Writer和Reader
Writer中有OutputStreamWriter中的FileWriter用于操作文件。
FileWriter fw=new FileWriter(“demo.txt”/*,true*/);
传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。
创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
而且该文件会被创建到指定目录下。如果该目录下已经有同名文件,将被覆盖。
其实该步就是在明确数据要存放的目的地。
fw.writer("abcde");   |
调用write方法,将字符串写入到流中。 |
fw.flush();    |这三个方法都会抛异常!
刷新流对象中的缓冲中的数据。  |
将数据刷到目的地中。   | 
fw.close();    |
关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。
将数据刷到目的地中
和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。

缓冲区 BufferedWriter BufferedRead
缓冲区的出现是为了提高流的操作效率而出现的。
所以在创建缓冲区之前,必须要先有流对象。

缓冲区用法:
1.先建立流对象
FileWriter fw = new FileWriter("buf.txt");
2.建立缓冲区,将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。
BufferedWriter bufw = new BufferedWriter(fw);
bufw.writer("abcde");
bufw.flush();
bufw.close();//管比较缓冲区,就是在关闭缓冲区中的流对象。不需要再专门流对象了。
//fw.close();此处已不需要。

BufferedWriter缓冲区中提供了一个跨平台的换行符。newLine();
BudderedReader缓冲区提供了一个一次读一行的方法readLine,方便于对文本数据的获取。
当返回null时,表示读到文件末尾。
readLine();方法返回的时候只返回回车符之前的数据内容。并不返回回车符。

字节流:
InputStream   OutputStream

键盘录入:
//获取键盘录入对象。
InputStream in = System.in;
//将字节流对象转换成字符流对象,使用转换流:InputStreamReader
InputStreamReader isr = new InputStreamReader(in);
//为了提高效率,将字符串进行缓冲区技术高效操作。使用BufferedReader
BufferedReader bufr = new BufferedReader(isr);
简写形式:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

流操作规律:
1,明确源和目的。
   源:输入流。InputStream Reader
   目的:输出流。OutputStream Writer
2,操作的数据是否是纯文本。
   是:字符流。
   不是:字节流。
3,当体系明确后,再明确要使用哪个具体的对象。
   通过设备来进行区分:
   源设备:内存,硬盘,键盘
   目的设备:内存,硬盘,控制台

通常,涉及到字符编码转换时,需要使用到转换流,转换流的构造函数中可以传一个编码方式作为参数。

 

抱歉!评论已关闭.