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);
}
}