一.文件流(低级流,字节流)
1.FIS——>FileInputStream(一个参数,fileName或者file)
输入流——>读取数据
byte[] data = new byte[300];
int len = fis.read(data);
String str = new String(data,0,len,"utf-8");
2.FOS——>FileOutputStream(一个参数覆盖写,fileName或者两个参数fileName,追加写true)
输出流——>写出数据
fos.write(str.getBytes("utf-8"));
byte[] data = new byte[1024*10];
int len = -1;
while((len=src.read(data))!=-1) {
desc.write(data,0,len);
}
二.缓冲流——>提高读写效率
1.BIS——>BufferedInputStream(一个参数,文件输入流FIS)
int d = -1;
while((d = bis.read())!=-1) {
bos.write(d);
}
2.BOS——>BufferedOutputStream(一个参数,文件输出流FOS)
String str = "How are you?";
byte[] data = str.getBytes("utf-8");
bos.write(data);
bos.flush();
三.对象流
1.OIS——>ObjectInputStream(一个参数,文件输入流FIS)
transient——>瘦身修饰符
Serializable接口——>序列化接口
serialVersionUID——>序列化版本号
Person p = (Person)ois.readObject();
2.OOS——>ObjectOutputStream(一个参数,文件输出流FOS)
Person p = new Person(name,age);
oos.writeObject(p);
四.字符转换流(字符流)
1.ISR——>InputStreamReader(两个参数,文件输入流FIS和编码方式)
StringBuilder builder = new StringBuilder();
String str = "";
int d =-1;
while((d=isr.read())!=-1){
builder.append((char)d);
}
str = builder.toString();
2.OSW——>OutputStreamWriter(两个参数,文件输出流FOS和编码方式)
String str = "linsa";
osw.write(str);
osw.write("hello");
五.缓冲字符输入流BR——>BufferedReader(一个参数,字符转换输入流ISR)
方法:br.readLine()——>读取一行数据
六.缓冲字符输出流PW——>PrintWriter
1.使用方式(参数):
(1)一个参数file或者fileName;两个参数,后一个为编码方式
(2)两个参数,文件输出流FOS(fileName,true)和编码方式
(3)一个参数,字符转换输出流OSW(FOS(fileName,true),"utf-8")
2.方法:pw.println(line);