IO流的总结
流操作的基本规律:
最痛苦的就是流对象有非常多。不知道该用那一个。
通过明白来完毕。
(1)、明白源和目的
源:输入流InputStream Reader
目的:输出流OutputStream Writer
(2)、操作的数据是否是纯文本
是:字符流 Reader Writer
不是:字节流 InputStream OutputStream
(3)、当体系明白后。再明白要使用那个详细的对象
通过设备来进行区分:
源设备:内存 硬盘 键盘
目的设备:内存 硬盘 控制台
需求:将一个文本文件里数据存储到还有一个文件里。拷贝文件
源:由于是源,所以使用读取流。InputStream Reader
是否是纯文本文件:是,所以使用 Reader。
接下来明白要使用该体系中的那个对象:
明白设备。硬盘,一个文件。
Reader体系中能够操作文件的是。FileReader。
是否须要提高效率?
BufferedReader
目的:由于是目的,所以使用写入流。OutputStream Writer
是否是纯文本文件:是。所以使用 Writer。
接下来明白要使用该体系中的那个对象:
明白目的,硬盘。一个文件。
Writer 体系中能够操作文件的是,FileWriter。
是否须要提高效率?须要。BufferedWriter
扩展
想要把录入的数据依照指定的编码表(UTF-8),将数据存到文件里,使用转换流,里面能够指定编码。
目的:OutputStream Writer
是否是纯文本?是。Writer
接下来明白要使用该体系中的那个对象:
明白目的,硬盘,一个文件。
Writer 体系中能够操作文件的是,FileWriter。可是存储时。须要增加指定的编码表,而指定的编码表,仅仅有转换流能够指定。
所以要使用的对象是OutputStreamWriter.
而该转换流对象要接收一个字节输出流。
并且还能够操作文件的字节输出流,FileOutputStream
是否须要提高效率?须要。BufferedWriter
/*所以,记住,转化暖流什么时候使用,字符和字节之间的桥梁,通常,涉及到字符编码转换时,须要用到转换流。
IO异常的处理方式。
*/
import java.io.*;
class FileWriterDemo2
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
fw = new FileWriter("demo.txt");
fw.write("abcdefg");
}
catch (IOException e)
{
System.out.println("catch:"+e.toString());
}
finally
{
try
{
if(fw!=null)
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步