1. 文件字节流接上
2. FileReader 和 FileWriter 介绍 618
3. FileReader 相关方法:618
1) new FileReader(File/String)
2) read:每次读取单个字符,返回该字符,如果到文件末尾返回-1
3) read(char[]): 批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1相关API:
1) new String(char[]):将char[]转换成String
2) new String(char[],off,len):将char[]的指定部分转换成String
4. FileWriter 常用方法 618
1) new FileWriter(File/String):覆盖模式,相当于流的指针在首端
2) new FileWriter(File/String,true):追加模式,相当于流的指针在尾端
3) write(int):写入单个字符
4) write(char[]):写入指定数组
5) write(char[],off,len):写入指定数组的指定部分
6) write (string) :写入整个字符串
7) write(string,off,len):写入字符串的指定部分
相关API: String类: toCharArray:将String转换成char[]
➢注意:
FileWriter使用后,必须要关闭(close)或刷新(flush), 否则写入不到指定的文件!
5. FileReader 和 FileWriter 应用案例 619
5.1 FileReader 字符输入流 619
使用 FileReader 从 story.txt 读取内容,并显示
代码在com.stulzl.fileread_.包中
FileRead_
package com.stulzl.fileread_;
import org.junit.jupiter.api.Test;
import javax.annotation.processing.SupportedAnnotationTypes;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
// FileReader 字符输入流 619
//使用 FileReader 从 story.txt 读取内容,并显示
public class FileRead_ {
public static void main(String[] args) {
}
//单字符读取文件
@Test
public void readFile01(){
String filePath = "e:\\story.txt";
FileReader fileReader = null;
int data = 0;//也是用来存放read()的返回值
try {
//创建FileReader对象
fileReader = new FileReader(filePath);
//循环读取,使用read,单个字符读取
while((data = fileReader.read())!=-1){
System.out.print((char)data);//类型转换,因为data要求是字符类型
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileReader!=null) {
fileReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//使用字符数组读取文件
@Test
public void readFile02(){
System.out.println("第二种方式");
String filePath = "e:\\story.txt";
FileReader fileReader = null;
int readLen = 0;//也是用来存放read(buf)的返回值
char[] buf = new char[8];
try {
//创建FileReader对象
fileReader = new FileReader(filePath);
//循环读取,使用read(buf), 返回的是实际读取到的字符数
//如果返回-1, 说明到文件结束
while((readLen = fileReader.read(buf))!=-1){
System.out.print(new String(buf,0,readLen));//类型转换,因为data要求是字符类型
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileReader!=null) {
fileReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
5.2 FileWrite字符输出流 620
使用 FileWriter 将 “风雨之后,定见彩虹” 写入到 note.txt 文件中, 注意细节
代码在com.stulzl.filewrite_.包中
FileWrite_
package com.stulzl.filewrite_;
import java.io.FileWriter;
import java.io.IOException;
//FileWrite字符输出流 620
//使用 FileWriter 将 “风雨之后,定见彩虹” 写入到 note.txt 文件中, 注意细节
public class FileWrite_ {
public static void main(String[] args) {
String filePath = "e:\\note.txt";
FileWriter fileWriter = null;
char[] chars = {'a','b','c'};
try {
fileWriter = new FileWriter(filePath);
//write(int):写入单个字符
fileWriter.write('h');
//write(char[]):写入指定数组
fileWriter.write(chars);
//write(char[],off,len):写入指定数组的指定部分
//fileWriter.write(chars,0,2);
//toCharArray()方法可以将一个字符串转成一个字符数组
fileWriter.write("中国,你好".toCharArray(),3,2);//你好
//write (string) :写入整个字符串
fileWriter.write("你好,中国");
fileWriter.write("风雨之后,定见彩虹");
//write(string,off,len):写入字符串的指定部分
fileWriter.write("你好世界",2,2);//世界
//在数据量大是可以使用循环
} catch (IOException e) {
e.printStackTrace();
} finally {
//FileWriter使用后,必须要关闭(close)或刷新(flush), 否则写入不到指定的文件!
try {
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
标签:字符,char,String,文件,FileReader,write,FileWriter
From: https://blog.51cto.com/u_15784725/6317324