package a;
import java.io.BufferedReader;
import java.io.BufferedWriter;
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.UnsupportedEncodingException;
public class ChineseFileRW {
public static String readFile(String str) {
File file = new File(str);
StringBuffer sb = null;
if(!file.exists()) {
System.out.println("文件不存在,请确定路径是否"+str+"正确");
}
if(null != file) {
sb = new StringBuffer();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
String lineString = null;
if(null != (lineString=br.readLine())) {
sb.append(lineString);
}
} catch (UnsupportedEncodingException e) {
System.out.println("不支持 xxxx encoding,这个格式解码");
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
System.out.println("路径"+str+"不正确");
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
System.out.println("br.readline()出错");
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(null != br) {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("关闭BufferedReader失败");
e.printStackTrace();
}
}
}
}
return sb.toString();
}
public static void main(String[] args) {
String string = readFile("d:/1/a.txt");
System.out.println(string);
Boolean flag = write("你好啊 alience", "D:/2/b.txt");
System.out.println(flag);
}
/**
* @param context 向文件填写的内容
* @param path 文件路径
* @return boolean 填写成功 true 失败 false
* 方法说明:向一个path文件添加context,如果path正确且有文件,可以在原来文件后填写context
* 如果path不正确,那么就创建一个新的path,然后填写文件
*/
public static Boolean write(String context,String path) {
Boolean flag = new Boolean(false);
File file = new File(path);
if(!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("创建"+file+"失败");
e.printStackTrace();
}
}
BufferedWriter sb = null;
if( null!=file ) {
try {
//在原文件的基础上添加 字符流
sb = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true),"GBK"));
sb.write(context+"\r\n");
flag = true;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
System.out.println("BufferedWriter出错了");
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
System.out.println("写错了");
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(null != sb) {
try {
sb.close();
} catch (IOException e) {
System.out.println("关闭写流失败");
e.printStackTrace();
}
}
}
}
return flag;
}
}