今天做一個功能,把輸入的log寫入到本地,寫入後發現裡面的中文全部為亂碼,查了下資料才發現:
1.不能直接用 raf.write(String) 方法,而用 raf.write(String.getBytes());
2.要加上寫入模式:
msg.getBytes("UTF-8")
全部代碼:
public synchronized static void writeLog(String msg){
if(msg!=null && !msg.equals("")){
File file =new File(path);
try {
if(!file.exists())
file.createNewFile();
raf = new RandomAccessFile(file, "rw");
long pos = raf.length();
raf.seek(pos);
raf.write(msg.getBytes("UTF-8"));
raf.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
}
}
}