Writer和Reader类
文章目录
Writer和Reader类前言Writer字符输出流类主要方法案例代码向文件中写入数据运行结果向文件中追加数据运行结果
Reader字符输入流类主要方法案例代码从文件中读取内容运行结果使用循环的方式读取内容运行结果
总结
前言
在java中提供了针对字符输入输出操作的两个类,分别是Writer字符输出流类,Reader字符输入流类。
Writer字符输出流类
Writer类为字符输出流类,本身也是一个抽象类,如果要使用此类,则必须通过其子类FileWriter为其进行实例化操作。FileWriter类为Writer类的子类
主要方法
序号方法类型描述
1public abstract void close() throws IOException普通关闭输出流2public void write(String str) throws IOException普通将字符串输出3public void write(char[] cbuf) throws IOException普通将字符数组输出4public abstract void flush() throws IOException普通强制性清空缓存
案例代码
向文件中写入数据
package chapter_twelve
;
import java
.io
.File
;
import java
.io
.FileWriter
;
import java
.io
.Writer
;
public class WriterDemo01 {
public static void main(String
[] args
) throws Exception
{
File file
= new File("D:" + File
.separator
+ "test.txt");
Writer writer
= new FileWriter(file
);
String string
= "Hello World!!!";
writer
.write(string
);
writer
.close();
}
}
运行结果
向文件中追加数据
package chapter_twelve
;
import java
.io
.File
;
import java
.io
.FileWriter
;
import java
.io
.Writer
;
public class WriterDemo02 {
public static void main(String
[] args
) throws Exception
{
File file
= new File("D:" + File
.separator
+ "test.txt");
Writer writer
= new FileWriter(file
,true);
writer
.write("\r\nGao Li Wei!!!");
writer
.close();
}
}
运行结果
Reader字符输入流类
Reader也是一个抽象类,使用字符的方式从文件中取出数据,通过其子类FileReader为其进行实例化操作。
主要方法
序号方法类型描述
1public abstract void close() throws IOException普通关闭输出流2public int read() throws IOException普通读取单个字符3public int read(char[] cbuf) throws IOException普通将内容读到字符数组中,返回读入的长度
案例代码
从文件中读取内容
package chapter_twelve
;
import java
.io
.File
;
import java
.io
.FileReader
;
import java
.io
.Reader
;
public class ReaderDemo01 {
public static void main(String
[] args
) throws Exception
{
File file
= new File("D:" + File
.separator
+ "test.txt");
Reader reader
= new FileReader(file
);
char[] chars
= new char[1024];
int len
= reader
.read(chars
);
System
.out
.println(new String(chars
,0,len
));
reader
.close();
}
}
运行结果
Hello World
!!!
Gao Li Wei
!!!
使用循环的方式读取内容
package chapter_twelve
;
import java
.io
.File
;
import java
.io
.FileReader
;
import java
.io
.Reader
;
public class ReaderDemo02 {
public static void main(String
[] args
) throws Exception
{
File file
= new File("D:" + File
.separator
+ "test.txt");
Reader reader
= new FileReader(file
);
char[] chars
= new char[1024];
int temp
= 0, len
= 0;
while((temp
= reader
.read()) != -1){
chars
[len
++] = (char)temp
;
}
System
.out
.println(new String(chars
,0,len
));
reader
.close();
}
}
运行结果
Hello World
!!!
Gao Li Wei
!!!
总结
使用字符输出输入流可以方便地对字符串、字符数组、字符直接进行操作,而不必手动(系统会自动转换)的转换为字节进行输入输出操作,总之,字符流也是一种重要的应用,加油!