经常会遇到需要读写文件,分享一个简单的小方法
1读文件`
//读文件解析乱码
private String readFile()throws IOException {
String path = "C:\\Users\\jadl\\Desktop\\test.txt";
File f = new File(path);
FileInputStream fip = new FileInputStream(f);
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
StringBuffer sb = new StringBuffer();
while(reader.ready()){
//将读取的数据转化成char类型,加入StringBuffer对象sb里
sb.append((char)reader.read());
}
//将sb对象内容转化成string类型,输出
String newStr=sb.toString();
String newStr2 = new String(newStr.getBytes("ISO8859-1"), "UTF-8");
// System.out.println(newStr2);
//关闭读取流
reader.close();
//关闭输入流,释放系统资源
fip.close();
return newStr2;
}
写文件
private void writeFile() throws IOException {
String path = "C:\\Users\\jadl\\Desktop\\test.txt";
File f = new File(path);
//构建FileOutputStream对象,文件不存在会自动新建
FileOutputStream fop = new FileOutputStream(f);
// 构建OutputStreamWriter对象,参数可以指定编码"UTF-8";不设置,默认为操作系统默认编码;
OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
//写入缓冲区
writer.append("该类用来创建一个文件并向文件中写数据。\r\n如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。\r\n");
writer.append("tvmain: [2102][ 3034.174501] DTL: recording: [recording.cpp 1355 readTSData()] res:0, available:872865792");
// 关闭写入流,同时会把缓冲区内容写入文件
writer.close();
//关闭输出流,释放系统资源
fop.close();
}