/*
聽* 綆鍗曠殑璇?鍐欐枃鏈枃浠剁殑紺轟緥
聽* 榪欓噷鍖呭惈浜嗕笁涓緥瀛愶紝鍗?br />聽* 1. 灝嗘枃浠惰鍏ュ埌鍐呭瓨錛堣繖閲屾槸StringBuffer錛夌殑渚嬪瓙
聽* 2. 灝嗗唴瀹逛腑鐨勬枃鏈啓鍒版枃浠?br />聽* 3. 灝嗕竴涓枃浠剁殑鍐呭璇誨嚭鏉ュ啓鍏ュ彟涓涓枃浠朵腑
聽*聽聽聽 鍚屾椂涔熷睍紺轟簡濡傛灉浠庤緭鍏ユ祦涓鍑烘潵鍐呭鍐欏叆杈撳嚭嫻佷腑錛堜粎闄愭枃鏈祦錛?br />聽* 涓変釜渚嬪瓙鍙互鐙珛瀛樺湪錛屾墍浠ユ牴鎹渶瑕佸彧鐪嬪叾涓竴涓氨琛屼簡銆?br />聽*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
public final class AccessTextFile {
聽聽聽 /**
聽聽聽聽 * 1. 婕旂ず灝嗘祦涓殑鏂囨湰璇誨叆涓涓?StringBuffer 涓?br />聽聽聽聽 * @throws IOException
聽聽聽聽 */
聽聽聽 public void readToBuffer(StringBuffer buffer, InputStream is)
聽聽聽聽聽聽聽 throws IOException {
聽聽聽聽聽聽聽 String line;聽聽聽聽聽聽聽 // 鐢ㄦ潵淇濆瓨姣忚璇誨彇鐨勫唴瀹?br />聽聽聽聽聽聽聽 BufferedReader reader = new BufferedReader(new InputStreamReader(is));
聽聽聽聽聽聽聽 line = reader.readLine();聽聽聽聽聽聽 // 璇誨彇絎竴琛?br />聽聽聽聽聽聽聽 while (line != null) {聽聽聽聽聽聽聽聽聽 // 濡傛灉 line 涓虹┖璇存槑璇誨畬浜?br />聽聽聽聽聽聽聽聽聽聽聽 buffer.append(line);聽聽聽聽聽聽聽 // 灝嗚鍒扮殑鍐呭娣誨姞鍒?buffer 涓?br />聽聽聽聽聽聽聽聽聽聽聽 buffer.append("\n");聽聽聽聽聽聽聽 // 娣誨姞鎹㈣絎?br />聽聽聽聽聽聽聽聽聽聽聽 line = reader.readLine();聽聽 // 璇誨彇涓嬩竴琛?br />聽聽聽聽聽聽聽 }
聽聽聽 }
聽聽聽 /**
聽聽聽聽 * 2. 婕旂ず灝?StringBuffer 涓殑鍐呭璇誨嚭鍒版祦涓?br />聽聽聽聽 */
聽聽聽 public void writeFromBuffer(StringBuffer buffer, OutputStream os) {
聽聽聽聽聽聽聽 // 鐢?PrintStream 鍙互鏂逛究鐨勬妸鍐呭杈撳嚭鍒拌緭鍑烘祦涓?br />聽聽聽聽聽聽聽 // 鍏跺璞$殑鐢ㄦ硶鍜?System.out 涓鏍?br />聽聽聽聽聽聽聽 // 錛圫ystem.out 鏈韓灝辨槸 PrintStream 瀵硅薄錛?br />聽聽聽聽聽聽聽 PrintStream ps = new PrintStream(os);聽聽
聽聽聽聽聽聽聽 ps.print(buffer.toString());
聽聽聽 }
聽聽聽 /**
聽聽聽聽 * 3*. 浠庤緭鍏ユ祦涓嫹璐濆唴瀹瑰埌杈撳叆嫻佷腑
聽聽聽聽 * @throws IOException
聽聽聽聽 */
聽聽聽 public void copyStream(InputStream is, OutputStream os) throws IOException {
聽聽聽聽聽聽聽 // 榪欎釜璇昏繃榪囩▼鍙互鍙傞槄 readToBuffer 涓殑娉ㄩ噴
聽聽聽聽聽聽聽 String line;
聽聽聽聽聽聽聽 BufferedReader reader = new BufferedReader(new InputStreamReader(is));
聽聽聽聽聽聽聽 PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
聽聽聽聽聽聽聽 line = reader.readLine();
聽聽聽聽聽聽聽 while (line != null) {
聽聽聽聽聽聽聽聽聽聽聽 writer.println(line);
聽聽聽聽聽聽聽聽聽聽聽 line = reader.readLine();
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 writer.flush();聽聽聽聽 // 鏈鍚庣‘瀹氳鎶婅緭鍑烘祦涓殑涓滆タ閮藉啓鍑哄幓浜?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 榪欓噷涓嶅叧闂?writer 鏄洜涓?os 鏄粠澶栭潰浼犺繘鏉ョ殑
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 鏃㈢劧涓嶆槸浠庤繖閲屾墦寮鐨勶紝涔熷氨涓嶄粠榪欓噷鍏抽棴
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 濡傛灉鍏抽棴鐨?writer錛屽皝瑁呭湪閲岄潰鐨?os 涔熷氨琚叧浜?br />聽聽聽 }
聽聽聽 /**
聽聽聽聽 * 3. 璋冪敤 copyStream(InputStream, OutputStream) 鏂規硶鎷瘋礉鏂囨湰鏂囦歡
聽聽聽聽 */
聽聽聽 public void copyTextFile(String inFilename, String outFilename)
聽聽聽聽聽聽聽 throws IOException {
聽聽聽聽聽聽聽 // 鍏堟牴鎹緭鍏?杈撳嚭鏂囦歡鐢熸垚鐩稿簲鐨勮緭鍏?杈撳嚭嫻?br />聽聽聽聽聽聽聽 InputStream is = new FileInputStream(inFilename);
聽聽聽聽聽聽聽 OutputStream os = new FileOutputStream(outFilename);
聽聽聽聽聽聽聽 copyStream(is, os);聽聽聽聽 // 鐢?copyStream 鎷瘋礉鍐呭
聽聽聽聽聽聽聽 is.close(); // is 鏄湪榪欓噷鎵撳紑鐨勶紝鎵浠ラ渶瑕佸叧闂?br />聽聽聽聽聽聽聽 os.close(); // os 鏄湪榪欓噷鎵撳紑鐨勶紝鎵浠ラ渶瑕佸叧闂?br />聽聽聽 }
聽聽聽 public static void main(String[] args) throws IOException {
聽聽聽聽聽聽聽 int sw = 1;聽聽聽聽 // 涓夌嫻嬭瘯鐨勯夋嫨寮鍏?br />聽聽聽聽聽聽聽 AccessTextFile test = new AccessTextFile();
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 switch (sw) {
聽聽聽聽聽聽聽 case 1: // 嫻嬭瘯璇?br />聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 InputStream is = new FileInputStream("E:\\test.txt");
聽聽聽聽聽聽聽聽聽聽聽 StringBuffer buffer = new StringBuffer();
聽聽聽聽聽聽聽聽聽聽聽 test.readToBuffer(buffer, is);
聽聽聽聽聽聽聽聽聽聽聽 System.out.println(buffer);聽聽聽聽 // 灝嗚鍒?buffer 涓殑鍐呭鍐欏嚭鏉?br />聽聽聽聽聽聽聽聽聽聽聽 is.close();
聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 case 2: // 嫻嬭瘯鍐?br />聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 StringBuffer buffer = new StringBuffer("Only a test\n");
聽聽聽聽聽聽聽聽聽聽聽 test.writeFromBuffer(buffer, System.out);
聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 case 3: // 嫻嬭瘯鎷瘋礉
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 test.copyTextFile("E:\\test.txt", "E:\\r.txt");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽 }
聽聽聽 }
}