流:是一组有序的数据序列,流可以分为:Input流
Output流,Java中有数据流来处理输出输入模式,
输入模式:由,文件,网络,压缩包,其他, -------》 目的地
输出模式:源 据流数 -----------》 文件,网络,压缩包,其他,
1所有的输入流都是抽象类InputStream《字节流》或Reader《字符》的子类,
2所有的输出流都是抽象类OutputStream<字节输出流>或Writer《字符输出流》的子类
字节流的一些常见的操作形式:
程序----》FileOutputStream---》文件---》FileInputStream --》控制台
write()方法 read()方法;
程序----》FileOutputStream-----》文件---》FileInputStream --》控制台
OutputStreamWriter; inputStreamReader;
write()方法 read()方法;
文件 FileinputStream(read方法)文件
FileOutputStream(write方法)
字节流中的缓冲流是有些技巧:
BufferedInputStream();
BufferedOutputStream();必须flush()刷新
字符流:
BufferedReader();
BufferedWriter();必须flush()刷新;
这些带缓冲流的是不需要多次与文件进行交互;它能一次性读取很多然后在其要读取时直接从内存里读取;内置一个buff[size]数组;字节行的;char[size]形的可以指定大小要在构造方法中实现;
字符流中的FileReader是InputStreamReader的子类;
读取字符时有对编码集的影响;不同的平台的编码集有时可能不一样;
在Java中的对字符和字节的操作主要应用于对磁盘的操作,及时的把数据保存到磁盘中而不是内存这样的话可以让数据不丢失,保证了数据的完整性,不在是指在内存中的操作了。