1. 程式人生 > >關於java io流操作文件探討

關於java io流操作文件探討

字節流 程序 文本 puts not buffered 編碼 字符編碼 edr

1.任務描述

  2.讀取一個字符

  3.讀取整個文件

  4.復制文件

  5.復制大文件

  6.利用字符流解決亂碼問題

一.任務描述

  大家都知道程序是程序的運行是離不開內存的,但是很多東西並不在程序當中,而程序也需要操作它們。所以就需要一個東西與內存外的資源打交道,我們就把這個東西稱為io流。io流分為輸出流和輸入流,輸出流是將內存中的東西輸出到內存之外,輸入流是將內存之外的東西讀取到內存中。一旦有了io流之後,與內存之外的資源打交道就十分方便了。為什麽這麽說,其實總體上就只需要三步操作,第一步,定位數據源,第二步,建立管道,第三步,操作管道。對於第一步來說,如果是操作硬盤上面的資源

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
*
* @author user
*
*/
public class MyFIleStream {
public static void main(String[] args) {
// 定位數據源
File file = new File("d:\\liu.txt");
File file1 =new File("d:\\liu1.txt");
// 建立字節流管道
try {
FileInputStream fis = new FileInputStream(file);
FileOutputStream ops=new FileOutputStream(file1);


// 操作管道
int length = fis.available();
for (int i = 0; i < length; i++) {
System.out.println((char)fis.read());
ops.write(fis.read());
}
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
/**
* 關於讀取文件的操作
* 1.最好少用FileReader字符流讀取文件,因為他是采用默認的系統字符編碼進行解碼
* 解決方法:
* 可以采用輸入字符流InputStreamReader代替FileReader;他可以指定字符編碼.
* 2.怎樣高效遍歷整個文本文件
* 可以使用緩沖流BufferedReader流讀取,每次讀取一行.
* @author user
*
*/
public class FileOprate2 {
public static void main(String[] args) {
File f=new File("d:\\liu.txt");
File f1=new File("d:\\liu1.txt");
char[] chs=new char[1024];
try {
InputStreamReader insr=new InputStreamReader(new FileInputStream(f),"utf-8");
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(f1),"utf-8");
PrintWriter pw=new PrintWriter(osw);
BufferedReader br=new BufferedReader(insr);
while(br.ready()){
//System.out.println(br.readLine());
pw.write(br.readLine());
}
pw.close();

} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
}
}
}


關於java io流操作文件探討