JavaSE-1-7 IO流
目录
IO流:
1.处理设备之间数据传输。2.Java对数据处理通过流的方式。3.
Java 用于操作流的对象都在IO包里。4.流按照操作分为两种:字节流,字符流。5.按照流的方向:输入流&输出流 (读写)。
01输入& 输出流
将外界的数据【读】到内存:输入 将内存的数据写入外部设备:输出
02字节流&字符流
字符流:字节流读取文件数据后,不直接操作而是先查指定的编码表,获取对应文字。字符流=字节流+编码表。
字节流的两个顶层抽象父类: InputStream , OutputStream
字符流的两个顶层抽象父类:Writer ,Reader
Class FileWriter
- java.lang.Object
-
- java.io.Writer 抽象类
-
- java.io.OutputStreamWriter//是字符的桥梁流以字节流,
-
向其写入的字符编码成使用指定的字节
charset
。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集 - java.io.FileWriter// 方便课写字符文件
03字符流&FilerWriter
04FilerWriter-细节换行续写
知识点2.换行与续写 根据系统换行
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
fw.write("abcde"+LINE_SEPARATOR+"hahaha");
文件内容:
abcde
hahaha
知识点 3. 怎么续写? 如果构造函数中加入true,可以实现对文件进行续写!
FileWriter fw = new FileWriter("demo.txt",true);
05字符流-FileWriter-IO异常处理
06字符流-FileReader-读取方式
07字符流-FileReader-读取方式2
FileReader fr = new FileReader("demo.txt");
//用Reader中的read方法读取字符。abcde# # 表示文件结束
int num = fr.read(buf);//将读取到的字符存储到数组中。
System.out.println(num+":"+new String(buf,0,num));
int num1 = fr.read(buf);//将读取到的字符存储到数组中。
System.out.println(num1+":"+new String(buf,0,num1));
int num2 = fr.read(buf);//将读取到的字符存储到数组中。
System.out.println(num2+":"+new String(buf));
/*
* 使用read(char[])读取文本文件数据。
*
* 先创建字符数组。
*/
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}