1:字节流(掌握)
参照IO体系图
2:转换流(理解)
只有你在使用字节流中需要使用字符流的特殊方法时,才需要使用转换流。
在编码的使用,需要使用转换流。
3:流的使用规律
操作数据的时候要明确是字节流还是字符流?
如果用记事本打开并能看懂的数据就是字符流:
读取数据
Reader
是否高效:
否:|--FileReader
是:|--BufferedReader
写入数据
Writer
是否高效:
否:|--FileWriter
是:|--BufferedWriter
否则,就是字节流:
读取数据
InputStream
是否高效:
否:|--FileInputStream
是:|--BufferedInputStream
写入数据
OutputStream
是否高效:
否:|--FileOutputStream
是:|--BufferedOutputStream
如果你不知道,用字节流。
4:复制数据的规律(作业 字符数据)
A:文本文件--文本文件
数据源:
文本文件 -- Reader -- FileReader -- BufferedReader
目的地:
文本文件 -- Writer -- FileWriter -- BufferedWriter
代码:
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
String line = null;
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
B:文本文件--控制台输出(System.out)
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line=br.readLine())!=null)
{
bw.write(line)
bw.newLine();
bw.flush();
}
bw.close();
br.close();
C:键盘录入(System.in)--文本文件
数据源:
键盘录入 -- System.in -- InputStream -- InputStreamReader -- BufferedReader
目的地:
文本文件 -- Writer -- FileWriter -- BufferedWriter
代码:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
String line = null;
while((line=br.readLine())!=null)
{
if("over".equals(line))
{
break;
}
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
D:键盘录入(System.in)--控制台输出(System.out)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line=br.readLine())!=null)
{
if("over".equals(line))
{
break;
}
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
按照如下步骤:
(1)数据源和目的地
数据源:
读取数据
InputStream
Reader
目的地:
写入数据
OutputStream
Writer
(2)判断数据源和目的地的数据是否是文本文件:
数据源:
是:Reader
不是:InputStream
目的地:
是:Writer
不是:OutputStream
(3)考虑设备
数据源:
文件(File)
FileReader
键盘录入(System.in)
InputStream -- System.in
目的地:
文件(File)
FileWriter
控制台输出(System.out)
OutputStream -- System.out
可能需要使用转换流。
(4)使用高效:
使用:就用带Buffered的流
不使用:不用带Buffered的流
5:编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,
并将原来文件的扩展名从.java改为.jad(理解)
回来练习一遍。
如果有兴趣,可以自己先实现一下多级目录的复制。
如何使用IO流
最新推荐文章于 2023-02-20 17:14:32 发布