一、IO(Input Output)流
1、输入输出流是相对于设备而言的。
将外设中的数据读入内存中:输入
将内存中的数据写入外设中:输出
2、字节流的由来:
其实就是字节流读取文字字节数据以后,不直接操作而是先查编码表,获取对应的文字,再对这个文字进行简单的操作。
简单说:字节流+编码表
3、示意图:
二、IO流常用的基类
案例:将一个文件写入到硬盘中:
1、首先得使用Writer,再使用Writer子类中的OutputStreamWriter子类中的FileWriter。
2、查看构造方法
-
-
Constructor and Description FileWriter(File file)
给一个File对象构造一个FileWriter对象。
FileWriter(File file, boolean append)
给一个File对象构造一个FileWriter对象。
FileWriter(FileDescriptor fd)
构造与文件描述符关联的FileWriter对象。
FileWriter(String fileName)
构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append)
构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
-
就使用FileWriter(String fileName)
3、编码实现
**
* @author James
* @create 2019-12-31 13:56
*
* 创建一个可以往文件写入字符串数据的文件输出流对象
* 如果文件不存在,则会自动创建。如果文件存在则会刷新。
*
*/
public class FileWriterDemo {
/**
* 调用系统换行符
*/
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) throws IOException {
/**
* 创建文件输出流对象 如果构造函数中加入true可以进行文件的续写(继续添加)
* 如果文件不存在,则会自动创建。如果文件存在,则会覆盖。
*/
FileWriter fw = new FileWriter("demo.txt",true);
//调用Writer对象中的writer(String str)方法,将数据写入临时缓冲区。
fw.write("acb"+LINE_SEPARATOR+"hfufbrh");
//将字符串刷入文件内 将数据直接写入目的地文件中
fw.flush();
//关闭流,释放资源,终止操作。在关闭前,会先调用flush()进行刷新缓存区中的内容到目的地。
fw.close();
}
}