Java的讀文件和寫文件都是基於字符流的,主要用到下面的幾個類:
1、FileReader----讀取字符流
2、FileWriter----寫入字符流
3、BufferedReader----緩衝指定文件的輸入
該類的方法有:
void close()
關閉該流。
void mark(int readAheadLimit)
標記流中的當前位置。
boolean markSupported()
判斷此流是否支持 mark() 操作(它一定支持)
int read()
讀取單個字符。
int read(char[] cbuf, int off, int len)
將字符讀入數組的某一部分。
String readLine()
讀取一個文本行。
boolean ready()
判斷此流是否已準備好被讀取。
void reset()
將流重置爲最新的標記。
long skip(long n)
跳過字符。
4、BufferedWriter----將緩衝對文件的輸出
該類的方法有:
void close()
關閉該流。
void flush()
刷新該流的緩衝。
void newLine()
寫入一個行分隔符。
void write(char[] cbuf, int off, int len)
寫入字符數組的某一部分。
void write(int c)
寫入單個字符。
void write(String s, int off, int len)
寫入字符串的某一部分。
舉個例子如下:
package aillo;
import java.io.*;
public class FileWriterReader {
//功能:讀取f:/aillo.txt文件的內容(一行一行讀),並將其內容寫入f:/jackie.txt中
//知識點:java讀文件、寫文件---<以字符流方式>
public static void main(String[] args) {
try {
FileReader fr = new FileReader("f:/aillo.txt");//創建FileReader對象,用來讀取字符流
BufferedReader br = new BufferedReader(fr); //緩衝指定文件的輸入
FileWriter fw = new FileWriter("f:/jackie.txt");//創建FileWriter對象,用來寫入字符流
BufferedWriter bw = new BufferedWriter(fw); //將緩衝對文件的輸出
String myreadline; //定義一個String類型的變量,用來每次讀取一行
while (br.ready()) {
myreadline = br.readLine();//讀取一行
bw.write(myreadline); //寫入文件
bw.newLine();
System.out.println(myreadline);//在屏幕上輸出
}
bw.flush(); //刷新該流的緩衝
bw.close();
br.close();
fw.close();
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}