从处理数据分为
字符流 InputStream / outputStream
字节流 reader / writer
从输入流向分为
输入流、 InputStream / reader
输出流:outputStream / writer
从功能上来看
节点流名字中包含 File、 byteAttray
处理流 :Buffered / Object 等等流
四个抽象类:字节流处理一切 字符流只能处理文本
InputStream : 继承了Closeable:用来通知操作系统是否可以关闭资源 AutoCloseable
void close()
int read()一个一个读 当读到最后一个的时候返回的是-1
File file = new File("a.txt");
FileInputStream fileInputStream = new FileInputStream(file);
int read;
while ((read=fileInputStream.read())!=-1){
System.out.print((char)read );
}
int read(byte[]) 一段一段读
File file=new File("a.txt");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bytes = new byte[3];
int len;
while((len=fileInputStream.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
OutputStream: 继承了Closeable:用来通知操作系统是否可以关闭资源 Flushable:内部有缓存,强制推送缓存 AutoCloseable,
void close
void flush
void write(byte【】)
File file = new File("b.txt");
String str="xxx.sbkad xhi";
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(str.getBytes());
fileOutputStream.flush();
System.out.println("ok");
fileOutputStream.close();
void write(int)
文件的复制:
File file1 = new File("a.txt");
File file2 = new File("b.txt");
FileInputStream fileInputStream = new FileInputStream(file1);
FileOutputStream fileOutputStream = new FileOutputStream(file2);
int len;
byte[] bytes = new byte[1024];
while ((len=fileInputStream.read(bytes))!=-1){
fileOutputStream.write(bytes,0,len);
}
fileOutputStream.flush();
fileOutputStream.close();
fileInputStream.close();
关闭资源:先打开的后关闭
Reader:读取字符 继承了Closeable:用来通知操作系统是否可以关闭资源 AutoCloseable Readable
void close
read()一次
read(char [])
Writer: 继承了Closeable:用来通知操作系统是否可以关闭资源 Flushable:内部有缓存,强制推送缓存 AutoCloseable,
appendable
void close
void flush
void write(char [])
void write(String)