1、IO 流基本操作基本规律总结
①明确源和目的
源: InputStream ; Reader ; 目的:OutStream Writer ;
②明确数据是否是纯文本数据
源:是纯文本:reader . 否:inputStream .
目的:是纯文本:writer . 否:outputStream .
到这里就可以明确需求中具体要使用哪个体系。
③ 明确设备
源设备:
硬盘:对应的是文件,File .
键盘:System.in
内存:数组
网络:socket流
目的设备:
硬盘:File
控制台:System.out
内存:数组
网络:Socket流
④是否需要其它额外功能
1是否需要高效缓冲区 buffer。
2、 流基本操作规律体现
①赋值一个文本文件
分析:操作源和目的,是纯文本,设备是硬盘。
FileReader fr=new FileReader(“a.txt”);
FileWriter fw=new FileWriter(“b.txt”);
加缓冲
BufferedReader bufr=new BufferedReader(new FileReader(“a.txt”));
BufferedWriter bufw=new BufferedWriter(new FileWriter(“b.txt”));
② 读取键盘录入信息,并写入到另一个文件中。
分析:操作源和目的,是纯文本,键盘和硬盘设备,
InputStream in=System.in ;
FileWriter fw=new FileWriter(“b.txt”);
这样可以通过字节转为字符串完成,但麻烦,所以有字符流操作实现转换。
InputStreamReader isr=new InputStreamReader(System.in);
FileWriter fw=new FileWriter(“b.txt”);
还需要额外功能,高效
BufferedReader bufr=new BufferedReader (new InputStreamReader(System.in));
BufferedWriter bufw=new BuggeredWriter(new FileWriter(“b.txt”));
③ 将一个文本文件数据显示在控制台上
分析:需要源和目的,是纯文本,硬盘和控制台设备
FileReader fr=new FileReader(“a.txt”);
OutputSream os=System.out ;
需要转换
FileReader fr=new FileReader(“a.txt”);
OutputStreamWriter osw=new OutputStreamWiter(System.out);
需要高效
BufferedReader br=new BufferedReader(new FileReader(“a.txt”));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
④读取键盘录入数据,显示在控制台上
分析:源和目的,是纯文本,键盘和控制台
InputSream in=System.in ;
OutputSream out= System.out ;
转换:因为操作的是文本数据
InputSreamReader isr=new InputStreamReader(System.in);
OutputStreamWriter osw=new OutputStreamWriter(System.out);
高效
BufferedReader bufr=new BuggeredReader(new InputStreamReader(System.in));
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
3、File :将一个已存在或不存在等待文件或目录封装成file对象。
① 获取: getName(); getAbsolutePath(); getPath(); length(); lastModified();
② 创建和删除: createNewFile() ; delete(); mkdir() ; dir.delete() ;
③ 判断: exists() ; isFIle(); isDirectory();
④ 重命名: f1.renameTo(f2); //将f1改名为f2 .
⑤ 系统根目录: listRoots() ;
⑥ 获取目录下的文件以及文件夹名称: list() ;
|