Java按行讀取文件和寫文件Demo
package com.basic;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
/**
* 文件讀寫有以下幾種常用的方法</br>
* 1、字節讀寫(InputStream/OutputStream)</br>
* int tmp = inputstream.read() != -1</br>
* 2、字符讀取(FileReader/FileWriter)</br>
* int tmp = filereader.read() != -1 //換行需要特殊處理</br>
* 3、行讀取(BufferedReader/BufferedWriter)</br>
* String tmp = bufferedreader.readLine()</br>
*
* @author chichudxing
* @date 2015年7月28日 下午2:21:19
*/
public class FileReadWriteDemo {
/**
* 從文件fileNme中讀取數據
*
* @param fileNme
* 文件名
* @return 讀取的結果
*/
public static String Read(String fileNme) {
StringBuilder sb = new StringBuilder(4096);
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(new FileInputStream(fileNme), "UTF-8"));
String linetmp = null;
while ((linetmp = in.readLine()) != null) {
sb.append(linetmp + "\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
/**
* 將數據寫入文件.
*
* @param fileName
* 文件名
* @param data
* 要寫的數據.
*/
public static void Write(String fileName, String data) {
PrintWriter out = null;
boolean append = false;
try {
out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName, append), "UTF-8"));
out.println(data);
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
out.close();
}
}
public static void main(String[] args) {
String readData = Read("conf/重生之妖孽人生.txt");
Write("./io/BufferedReaderDemoWrite.java", readData);
}
}