使用字符流读写文件
读文件 使用 Reader抽象类实现
使用reader读取文本文件案例:
public static void main(String[] args) {
File f1=new File("java1.txt");
Reader r1=null;
StringBuffer sb=null;
try {
r1=new FileReader("java1.txt");
int length=0;
char[] a=new char[1024];
while ((length=r1.read(a))!=-1){
System.out.println(new String(a,0,length));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
r1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Bufferedreader类来提高读取文本文件的效率
使用FileReader类与BufferedReader类
BufferedReader类是Reader类的子类
BufferedReader类带有缓冲区 ,按行读取内容的readLine()方法,BufferedReader类特有的方法
public static void main(String[] args) {
FileReader fileReader=null;
BufferedReader reader=null;
try {
fileReader=new FileReader("caijian2.txt");
reader=new BufferedReader(fileReader);
String s="";
while ((s=reader.readLine())!=null){
System.out.println(s);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过字符流的方式读取文件,并使用缓冲区,提高读文本文件的效率.
Reader类常用方法 :int read( )
int read(byte[] c)
read(char[] c,int off,int len)
void close( )
子类BufferedReader常用的构造方法
BufferedReader(Reader in)
子类BufferedReader特有的方法
readLine()
写文件 使用 Writer抽象类实现
案例:
public static void main(String[] args) {
File file=new File("java1.txt");
Writer w1=null;
try {
w1=new FileWriter(file,true);
w1.write(97);
w1.write("zhang");
w1.write("hh");
w1.write(new char[]{'7','8','t'});
w1.write(new char[]{'7','8','t'},0,1);
w1.write("冲冲冲");
w1.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
w1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用FileWriter类与BufferedWriter类
提高字符流写文本文件的效率:使用BufferedWriter类是Writer类的子类
BufferedWriter类带有缓冲区
代码实例:
public static void main(String[] args) {
FileWriter fileWriter=null;
BufferedWriter writer=null;
try {
fileWriter=new FileWriter("caijian2.txt");
writer=new BufferedWriter(fileWriter);
writer.write(97);
writer.write("战神");
writer.newLine();
writer.append('q').append('f');
writer.write("哈哈哈");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Writer类常用方法
write(String str)
write(String str,int off,int len)
void close()
void flush()
子类BufferedWriter常用的构造方法
BufferedReader(Writer out)
小总结:
File 类用于访问文件或目录的属性
程序和数据源之间通过流联系
输入流和输出流
字节流和字符流
节点流和包装流
FileInputStream和FileOutputStream以字节流的方式读写文本文件。
BufferedReader和BufferedWriter以字符流的方式读写文本文件,而且效率更高。