纯文本的读取,步骤:
1.建立联系 file对象
2.选择流: Reader FileReader
3.读取:char[] flush=new char[1024];
4.关闭资源
思路和读取文件基本是一致的,下面比较一下:
字节流读取文件VS字符流读取纯文本
1.使用流不同,前者使用“stream”,后者是“reader”
2.读取使用数组不同,前者是byte数组,后者是char数组
3.速度不同,后者速度要比前者快
代码:
public class Demo05 {
public static void main(String[] args) {
/**
* 纯文本读取
*/
//1.建立联系
File src=new File("F:/Picture/test/test.txt");
//2.选择流
Reader reader=null;
try {
reader=new FileReader(src);
//3.char数组读取
char[] flush=new char[1024];
int len=0;
while(-1!=(len=reader.read(flush))){
String str=new String(flush,0,len);
System.out.println(str);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//4.关闭资源
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
纯文本的写出,步骤:
1.建立联系 file对象
2.选择流:writer FileWriter
3.读取while(字符数组,0,长度)+flush
4.关闭资源
之前文件写出的时候,需要把String字符串转化成byte数组,才可以使用writer方法写出,
但是Writer提供了不同的writer方法,可以直接写出字符串,如下
public class Demo05 {
public static void main(String[] args) {
/**
* 纯文本写出
*/
//1.获取File对象
File dest=new File("F:/Picture/test/test2.txt");
//2.选择流
Writer writer=null;
try {
//true代码追加文件,false代码覆盖,默认false覆盖
writer=new FileWriter(dest,true);
String str="我们都是好孩子!";
//3.写出,强制刷出
writer.write(str);
//可追加
writer.append("hahaahaha");
writer.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(writer!=null){
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}