Reader和Writer
FileReader--->与FileInputStream成对
通过字符的方式读取文件,仅适合字符文件
FileWriter--->与FileOutputStream成对,可以处理字符串
通过字节的方式写出或追加数据到文件中,仅适合字符文件
Writer当中重载了三个方法--->append方法,可以一致.append.append往下添加下去
package iostudy.ioprogramme;
import java.io.*;
/**
* 文件字符输入流
* 1、创建源
* 2、文件字符输入流
* 3、操作
* 4、释放资源
* @since JDK 1.8
* @date 2021/5/17
* @author Lucifer
*/
public class IoReader {
public static void main(String[] args) {
//创建源
File src = new File("D:/workspace/practice/main/java/iostudy/ioprogramme/abc.txt");
/*选择输入流*/
Reader reader = null;
//操作文件
try {
//创建读取对象
reader = new FileReader(src);
//新建缓冲区(缓冲容器)
char[] flush = new char[1024];
//一次接收长度的大小--->当为空时返回的是-1
int temp = -1;
//开始进行读取操作
while ((temp=reader.read(flush))!=-1){
//因为已经是字符数组,所以直接构建成字符串
String str = new String(flush, 0, temp);
System.out.println(str);
System.out.println("Successfully");
}
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if (null!=reader){
//关闭文件
reader.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
}
文件字符输出流
package iostudy.ioprogramme;
import java.io.*;
/**
* 测试文件字符输出流
* 1、创建源
* 2、选择输出流
* 3、进行文件操作
* 4、关闭源文件
* @since JDK 1.8
* @date 2021/5/17
* @author Lucifer
*/
public class IoWriter {
public static void main(String[] args) {
/*创建源*/
File dest = new File("D:/workspace/practice/main/java/iostudy/ioprogramme/abc.txt");
/*选择流*/
Writer writer = null;
//尝试进行操作
try {
//创建FileWriter对象
writer = new FileWriter(dest);
/*创建内容*/
String str = "韦俊是真的帅\r\n韦俊是真的好看";
// /*创建缓冲区*/
// char[] datas = str.toCharArray(); //这是一个方法,直接获取字符内容放进数组中--->字符串变成字符数组,不存在编码问题
// /*用方法写出内容*/
// writer.write(datas, 0, datas.length);
// //写法二--->直接往里面写
// writer.write(str, 0, 2); //最后一个形参是指定写出来的字符个数
//写法三--->使用append来写
writer.append("韦俊").append("是真的").append("帅"); //因为这个类实现了CharSequence接口--->字符序列化接口--->给字符排序
/*
注意区别write和append的区别--->处理字符文件,不要去处理图片,会破坏文件
*/
/*强制刷新一下*/
writer.flush();
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}finally {
//释放资源
try {
//如果前面都没有异常
if (null!=writer){
writer.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
}