相关其他博客:
IO体系
File类介绍
InputStream,OutputStream
Reader
java.lang.Object
java.io.Reader
public abstract class Reader
extends Object
implements Readable, Closeable
Writer
java.lang.Object
java.io.Writer
public abstract class Writer
extends Object
implements Appendable, Closeable, Flushable
用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率。
使用字符流读取 高效 FileReader BufferedReader。
File file = new File("test.txt");
if(!file.exists()) {
file.createNewFile();
}
//根据文件对象创建文件字符读取流
FileReader fr = new FileReader(file);
//根据文件字符读取流创建缓存字符读取流
BufferedReader reader = new BufferedReader(fr);
String str = null;
while( (str=reader.readLine())!=null) {//一次读取一行数据
System.out.println(str);
}
//关闭资源
reader.close();
fr.close();
//输出
hello world!黄骏捷
File file = new File("test3");
if(!file.exists()) {
file.createNewFile();
}
//创建字符写入流
FileWriter fw = new FileWriter(file);
//将数据包装到缓冲区字符写入流中
BufferedWriter writer = new BufferedWriter(fw);
for(int i=0; i<3; i++) {
String str = "咖啡"+i;
writer.write(str); //一次写入字符串
//添加分隔符
writer.newLine();
}
writer.flush();//刷新缓冲区
writer.close();
fw.close();
文件复制
FileReader fr = new FileReader(new File("test1.txt"));
FileWriter fw = new FileWriter(new File("test2.txt"));
//缓存字符流
BufferedReader reader = new BufferedReader(fr);
BufferedWriter writer = new BufferedWriter(fw);
String str=null;
while( (str=reader.readLine())!=null) {
//写入文件中
writer.write(str);
//创建新的一行
writer.newLine();
}
//关闭资源
writer.flush();
writer.close();
reader.close();
fw.close();
fr.close();
DateOutputStream操作
File file = new File("C:\\Users\\27266\\Desktop\\Test.txt1");
if(!file.exists()) {
file.createNewFile();
}
OutputStream out = new FileOutputStream(file);
DataOutputStream ds = new DataOutputStream(out);
ds.writeInt(12);
ds.writeBoolean(true);
ds.writeFloat(12.34f);
ds.writeUTF("hello world");
ds.close();
System.out.println("-----------------------------------------");
InputStream in = new FileInputStream(file);
DataInputStream dp = new DataInputStream(in);
int a = dp.readInt();
boolean b =dp.readBoolean();
float c =dp.readFloat();
String d =dp.readUTF();
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
//操作:
-----------------------------------------
12
true
12.34
hello world