详解Java编程中面向字符的输出流
面向字符的输出流都是类 Writer 的子类,其类层次结构如图所示。

下表列出了 Writer 的主要子类及说明。

使用 FileWriter 类写入文件
FileWriter 类是 Writer 子类 OutputStreamWriter 类的子类,因此 FileWriter 类既可以使用 Writer类的方法也可以使用 OutputStreamWriter 类的方法来创建对象。
在使用 FileWriter 类写入文件时,必须先调用 FileWriter()构造方法创建 FileWriter 类的对象,再调用 writer()方法。FileWriter 构造方法的格式为:
public FileWriter(String name); //根据文件名创建一个可写入的输出流对象 public FileWriter(String name,Boolean a); //a 为真,数据将追加在文件后面
【例】利用 FileWriter 类将 ASCⅡ字符写入到文件中
import java.io.*;
class ep10_3{
public static void main(String args[]){
try{
FileWriter a=new FileWriter("ep10_3.txt");
for(int i=32;i<126;i++){
a.write(i);
}
a.close();
}
catch(IOException e){}
}
}
运行后程序后,打开 ep10_3.txt 文件,显示内容为:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}
使用 BufferedWriter 类写入文件
BufferedWriter 类是用来将数据写入到缓冲区。使用时必须创建 FileWriter 类对象,再以该对象为参数创建 BufferedWriter 类的对象,最后需要用 flush()方法将缓冲区清空。BufferedWriter类有两个构造方法,其格式为:
public BufferedWriter(Writer out); //创建缓冲区字符输出流 public BufferedWriter(Writer out,int size); //创建输出流并设置缓冲区大小
【例】利用 BufferedWriter 类进行文件复制
import java.io.*;
class ep10_4{
public static void main(String args[]){
String str=new String();
try{
BufferedReader in=new
BufferedReader(new FileReader("ep10_4_a.txt"));
BufferedWriter out=new
BufferedWriter(new FileWriter("ep10_4_b.txt"));
while((str=in.readLine())!=null){
System.out.println(str);
out.write(str); //将读取到的 1 行数据写入输出流
out.newLine(); //写入换行符
}
out.flush();
in.close();
out.close();
}
catch(IOException e){
System.out.println("出现错误"+e);
}
}
}
需要注意的是,调用 out 对象的 write()方法写入数据时,不会写入回车,因此需要使用newLine()方法在每行数据后加入回车,以保证目标文件与源文件相一致。
相关文章
Array Index Out of Bounds:数组越界错误解决方案及调试技巧
数组越界访问是指访问数组中超出其有效索引范围的元素,这是一种常见的编程错误,可能导致程序崩溃或数据损坏,下面这篇文章主要给大家介绍了关于Array Index Out of Bounds:数组越界错误解决方案及调试技巧的相关资料,需要的朋友可以参考下2024-08-08
关于springboot忽略接口,参数注解的使用ApiIgnore
这篇文章主要介绍了关于springboot忽略接口,参数注解的使用ApiIgnore,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07
Spring中的之启动过程obtainFreshBeanFactory详解
这篇文章主要介绍了Spring中的之启动过程obtainFreshBeanFactory详解,在refresh时,prepareRefresh后,马上就调用了obtainFreshBeanFactory创建beanFactory以及扫描bean信息(beanDefinition),并通过BeanDefinitionRegistry注册到容器中,需要的朋友可以参考下2024-02-02
SpringBoot整合MybatisPlus实现增删改查功能
MybatisPlus是国产的第三方插件, 它封装了许多常用的CURDapi,免去了我们写mapper.xml的重复劳动。本文将整合MybatisPlus实现增删改查功能,感兴趣的可以了解一下2022-05-05
Springboot如何通过yml配置文件为静态成员变量赋值
这篇文章主要介绍了Springboot如何通过yml配置文件为静态成员变量赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-10-10


最新评论