### 簡單的說明
從字符類型(char)的文件中讀取和寫入數據,我們要使用FileWriter和FileReader類來實現。
### FileWriter和FileReader
### FileWriter類
構造方法:
FileWriter(String filename)
FileWriter(File file)
關鍵方法:
write(int oneChar)
write(char[] buffer, int offset, int count)
### FileReader類
構造方法:
FileReader(String filename)
FileReader(File file)
關鍵方法:
read()
read(char[] buffer, int offset, int count)
### 一個測試的Demo
定義三個方法:
(1)testFileReader方法—讀取文件內容
FileReader的使用方法:
~~~
//1.創建一個輸入字符文件
//2.創建一個FileReader對象
//3.調用read方法,讀取內容數據
//4. 關閉對應的流
~~~
(2)testFileWriter方法—-往文件寫內容
FileWriter的使用方法:
~~~
//1.創建一個File文件
//2.創建一個FileWriter對象
//3.調用write方法寫入數據
//4.關閉對應的輸出流
~~~
(3)copyByFileReaderFileWriter方法—-復制文件的方法
~~~
//1.定義輸入和輸出的文件
//2.定義輸入流和輸出流的對象
//3.執行復制操作
//4.關閉對應的流,先關輸出流,后關輸入流
~~~
~~~
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReaderFileWriter {
//同時使用FileReader和FileWriter,實現二個文本文件的復制
public static void copyByFileReaderFileWriter(String src,String des){
//2.定義二個字符流,輸入流,輸出流
FileReader fr = null;
FileWriter fw = null;
try {
//1.定義二個文件,一個輸入,一個輸出
File fin = new File(src);
File fout = new File(des);
fr = new FileReader(fin);
fw = new FileWriter(fout);
//3.復制操作
char[] c = new char[20];
int len;
while((len = fr.read(c)) != -1){
fw.write(c, 0, len);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//4. 關閉對應的流,先關輸出流,再關輸入流
if(fw != null){
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fr != null){
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//FileWriter使用樣例---處理字符
public static void testFileWriter(){
//2.定義一個FileWriter對象
FileWriter fw = null;
try {
//1.定義一個輸出字符文件
File f1 =new File("hello_FileWriter.txt");
fw = new FileWriter(f1);
//3.輸出操作
String str = "我是中國人,我愛打dota,還愛搞機";
fw.write(str);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
//4.關閉對應的流
if(fw != null){
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//FileReader使用樣例---處理字符
public static void testFileReader(){
//2.定義一個FileReader
FileReader fr = null;
try {
//1.定義一個輸入字符文件
File f1 =new File("hello.txt");
fr = new FileReader(f1);
//3.讀入操作
char[] c = new char[10];
int len;
while((len = fr.read(c)) != -1){
System.out.print(new String(c,0,len));
}
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//4.關閉對應的流
if(fr != null){
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
~~~
調用:
~~~
//FileReader使用樣例---處理字符
FileReaderFileWriter.testFileReader();
//FileWriter使用樣例---處理字符
FileReaderFileWriter.testFileWriter();
//同時使用FileReader和FileWriter,實現二個文本文件的復制
FileReaderFileWriter.copyByFileReaderFileWriter("hello_FileWriter.txt", "hello_FileWriter_copy.txt");
~~~
參考資料:
1.FileWriter api文檔
android_sdk_docs_offline/reference/java/io/FileWriter.html
2.FileReader文檔
android_sdk_docs_offline/reference/java/io/FileReader.html
3.FileWriter與FileReader視頻
[http://edu.csdn.net/course/detail/805/10966?auto_start=1](http://edu.csdn.net/course/detail/805/10966?auto_start=1)
- 前言
- Java核心技術之Comparator和Comparable在排序中的應用
- Java核心技術之容器
- Java核心技術之基本數據類型
- java核心技術之正則表達式
- java核心技術之reflect(一):一個系統學習reflect的Demo(精)
- java核心技術之IO流(一)File類
- java核心技術之IO流(二)FileInputStream和FileOutputStream
- java核心技術之IO流(三)FileReader和FileWriter
- java核心技術之IO流(四)BufferedInputStream和BufferedOutputStream
- java核心技術之IO流(五)BufferedReader和BufferedWriter
- java核心技術之IO流(六)DataInputStream和DataOutputStream