1,使用FileReader类读取文件
流类InputStreamReader是Reader类的子类,而文件字符输入流FileReader继承自InputStreamReader。所以两者创建的对象都可供FileReader类的实例化对象使用。在实现字符文件的输入操作时,必须先创建FileReader类的实例化对象,然后在调用reade()方法。
构造方法public FileReader(String name),根据文件名创建一个可读取的输入流对象。例:
//利用FileReader类读取f:\java文件夹下的hello.txt文件 //filename:A_1.java import java.io.*; public class A_1{ public static void main(String[] args)throws IOException{ char[] ch=new char[20]; //创建一个字符数组,Java中汉字和字母都是一个字符,转义字符占用两个字符 FileReader fr=new FileReader("f:\\java\\hello.txt"); int num=fr.read(ch); String str=new String(ch,0,num); System.out.print("读取的字符个数:"+num+",内容是:"); System.out.println(str); fr.close(); } } //读取的字符个数:11,内容是:Helloworld!
2,使用FileWriter类写入文件
流类OutputStreamWriter是Writer类的子类,而文件字符流输出对象FileWriter继承自OutputStreamWriter,所以两者创建的对象都可供FileWriter类的实例化对象使用。在实现字符文件的输出操作时,必须先创建FileWriter类的实例化对象,然后在调用write()方法。
构造方法:public FileWriter(String filename),根据所给的文件名创建一个文件输出流对象,原先的文件会被覆盖。public FileWriter(String filename,boolean a),如果a=true,则会将数据追加在源文件的后面。例:
//利用FielWriter类将字符数组追加到原文件末尾 import java.io.*; public class A_1{ public static void main(String[] args)throws IOException{ FileWriter fw=new FileWriter("f:\\java\\hello.txt",true); char[] ch={'J','a','v','a','\n'}; fw.write(ch); fw.close(); } } //helloworld!Java
3,使用BufferedReader类读取文件
缓冲字符输入流BuffedReader是Reader类的子类,用来读取缓冲区的数据,使用前必须先创建文件字符输入流FileReader类对象,然后以该对象为参数创建BufferedReader类的对象,利用此对象来读取缓冲区数据。
构造方法:public BuffedReader(Reader in),创建缓冲区字符输入流。public BufferedReader(Reader in,int size),创建缓冲区字符输入流,并设置缓冲区大小。例:
//利用缓冲字符输入流类读取文本文件 import java.io.*; public class A_1{ public static void main(String[] args){ int count=0; String thisLine; try{ FileReader fr=new FileReader("F:\\java\\hello.txt"); BufferedReader br=new BufferedReader(fr); while((thisLine=br.readLine())!=null){ count++; System.out.println(thisLine); } System.out.println("一共"+count+"行"); br.close(); } catch(IOException e){} } } /** helloworld! helloworld! 一共2行 */
4,使用BufferedWriter类写入文件
缓冲字符输出流BuffedWriter是Writer类的子类,用来将数据写入缓冲区,使用前必须先创建文件字符输出流FileWriter类对象,然后以该对象为参数创建BufferedWriter类的对象,利用此对象把数据写入缓冲区。与BufferedReader类不同的是缓冲区数据最后必须使用flush()方法将缓冲区数据全部写入文件内。
构造方法:public BufferedWriter(Writer out),创建缓冲区字符输出流。public BufferedWriter(Writer out,int size),创建缓冲区字符输出流,并设置缓冲区大小。例:
//利用缓冲区输入输出流进行文件赋值 import java.io.*; public class A_1{ public static void main(String[] args){ String str=new String(); try{ BufferedReader in=new BufferedReader(new FileReader("F:\\java\\hello.txt")); BufferedWriter out=new BufferedWriter(new FileWriter("F:\\java\\hello.txt")); while((str=in.readLine())!=null){ System.out.println(str); out.write(str); out.newLine(); } out.flush(); in.close(); out.close(); } catch(IOException ioe){} } }