更新时间:2020-07-28 16:38:56 来源:极悦 浏览1884次
一、字符输出流
java.io.Writer抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。
它定义了字节输出流的基本共性功能方法。
void write(int c)写入单个字符。写入0到65535之间的Unicode码。
void write(char[]cbuf)把整个字符数组的内容写进去。
abstract void write(char[]cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
void write(String str)写入字符串。
void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
void flush()刷新该流的缓冲,则立即将它们写入预期目标。
void close()关闭此输出流并释放与该流关联的所有系统资源
Writer抽象类下面的子类结构:
图中深色的为节点流,浅色的为处理流。
二、FileWriter类
java.io.FileWriter类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
作用:把内存中字符数据写入到文件中。
1、构造方法
FileWriter(File file):创建一个新的FileWriter,给定要读取的File对象。
FileWriter(String fileName):创建一个新的FileWriter,给定要读取的文件的名称。
参数:写入数据的目的地。
File file:文件对象
String fileName:文件的路径。
构造方法作用:
①会创建一个FileWriter对象
②会根据构造方法中传递的文件/文件的路径,创建对象
③会把FileWriter对象指向创建好的文件。
字符输出流的使用步骤【重要】:
①创建FileWriter对象,构造方法中绑定要写入数据的目的地
②使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)
③使用FileWriter中的方法flush,把内存缓冲区中的数据,刷新到文件中
④释放资源(会先把内存缓冲区中的数据刷新到文件中)
2、基本写入数据
(1)写出字符:write(int b)方法,每次可以写出一个字符数据,代码使用演示:
public static void main(String[] args) throws IOException {
//1.创建FileWriter对象,构造方法中绑定要写入数据的目的地
FileWriter fw = new FileWriter("E:\\d.txt");
//2.使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)
//void write(int c) 写入单个字符。
fw.write(97);
//3.使用FileWriter中的方法flush,把内存缓冲区中的数据,刷新到文件中
fw.flush();
//4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
fw.close();
}
注意:如果未调用close方法,数据只是保存到了缓冲区,并未写出到文件中。
(2)关闭与刷新
区别:
flush:刷新缓冲区,流对象可以继续使用。
close:先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。
public static void main(String[] args) throws IOException {
//1.创建FileWriter对象,构造方法中绑定要写入数据的目的地
FileWriter fw = new FileWriter("E:\\e.txt");
//2.使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)
//void write(int c) 写入单个字符。
fw.write(97);
//3.使用FileWriter中的方法flush,把内存缓冲区中的数据,刷新到文件中
fw.flush();
//刷新之后流可以继续使用
fw.write(98);
//4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
fw.close();
//close方法之后流已经关闭了,已经从内存中消失了,流就不能再使用了
fw.write(99);//IOException: Stream closed
}
注意:即便是flush方法写出了数据,操作的最后还是要调用close方法,释放系统资源。
以上就是极悦java培训机构的小编针对“编程基础入门之Java字符输出流”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习