字节流
file类:
createNewFile() :创建文件 mkdir():创建文件夹
io分类:
A.字节流:inputStream outputStream 输入|输出流
FileInputStream(String path) FileInputStream(File file)
FileOutputStream
B.字符流: Reader Writer
A.节点流:直接与文件交互的流
B.处理流:直接与流交互的流
C.转换流:InputStreamReader (字节—>字符) outputStreamWriter
共同方法:read write
当操作文件比较到大时,考虑使用字节缓存流。
D.缓存流:在原来基础上添加了一些功能。
BufferedInputStream BufferedOutputStream
示例:
// 创建输入流
FileInputStream fis = new FileInputStream("E:\\File\\a.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
//创建输出流
FileOutputStream fos=new FileOutputStream("E:\\File\\复制\\a.txt");
BufferedOutputStream bos=new BufferedOutputStream(fos);
//操作流;进行读写
int len=0;
byte[] b=new byte[1024];
while((len=bis.read(b))!=-1){
bos.write(b,0,len);
***bos.flush();***//刷新是把缓存内容到内存中 及时清空缓存
}
System.out.println("复制完毕");
//关闭流
bos.close();
bis.close();
read():每次只读取一个字节
read(byte b[]):直接将读取数据存放于数组b中
read(b,0,4):每次向byte数据b中读取4个,0表示其实位置。
Writer与此类似。
字符流
字符流:仅仅适用于文字相关内容,单位是char
构造方法:
FileWriter(File file) FileWriter(String str)
字符缓存流:
BufferedReader BufferedWriter
可以读行:
String line=null;
while((line=bufReader.readLine())!=null)
{
bufWriter.write(line);
}
newLine(): 写入一个换行符 等同于\r\n
StringReader(String s):创建一个新字符串
标准流
System.in –>inputStream 键盘输入流
System.out –>printStream 显示器输出、指定输出
PrintStream :为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。
常见方法:各种print println append
PrintStream ps=System.out;
ps.print(true);
ps.append(“abc”);
System.in—>InputStream 操作byte.
键盘敲回车键这一动作包含3个字符:回车、\r、\n skip(long l):跳过l个字符。
InputStreamReader(System.in):每次操作一个字符
BufferedReader(new InputStreamReader(System.in)):操作多个字符
总结:
文字(字符):FileWriter BufferedWriter
FileReader BufferedReader
图片、音频(字节):FileInputStream BufferedInputStream
FileOutputStream BufferedOutputStream
键盘标准输入流:System.in
InputStream (System.in)–>InputStreamReader–>
BufferedReader(new InputStreamReader(System.in)