java linux下讀寫中文
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
public class TestFile {
//寫檔案,支援中文字元,在linux redhad下測試過
public static void writeLog(String str)
{
try
{
String path="/root/test/testfilelog.log";
File file=new File(path);
if(!file.exists())
file.createNewFile();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
FileOutputStream out=new FileOutputStream(file,false); //如果追加方式用true
StringBuffer sb=new StringBuffer();
sb.append("-----------"+sdf.format(new Date())+"------------\n");
sb.append(str+"\n");
out.write(sb.toString().getBytes("utf-8"));//注意需要轉換對應的字符集
out.close();
}
catch(IOException ex)
{
System.out.println(ex.getStackTrace());
}
}
public static String readLog()
{
StringBuffer sb=new StringBuffer();
String tempstr=null;
try
{
String path="/root/test/testfilelog.log";
File file=new File(path);
if(!file.exists())
throw new FileNotFoundException();
// BufferedReader br=new BufferedReader(new FileReader(file));
// while((tempstr=br.readLine())!=null)
// sb.append(tempstr);
//另一種讀取方式
FileInputStream fis=new FileInputStream(file);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
while((tempstr=br.readLine())!=null)
sb.append(tempstr);
}
catch(IOException ex)
{
System.out.println(ex.getStackTrace());
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
writeLog("this is a test log");
writeLog("中文測試看看");
System.out.println(readLog());
}
}