package test;import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;public class WriteFile { public static void createFile(String fileName) {
try {

//String str1 = new String(fileName.getBytes("ISO8859_1"),"gb2312");
FileOutputStream fw = new FileOutputStream(fileName); BufferedWriter stdout;

stdout = new BufferedWriter(new OutputStreamWriter(fw,"gb2312"));
String str= "可可在测试aaaaaaaaaaaaaaaa";
stdout.write(str);
stdout.flush();
fw.close();
stdout.close();
   

} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
} public static void main(String[] args) {
 
String encoding = System.getProperty("file.encoding");
System.out.println("file.encoding============="+encoding);
 

    createFile(args[0]);
String str = "/home/topetl/lzz/东东VVVV.txt";
createFile(str);

}
}将这个类单独打成了一个jar 包,在AIX下执行结果如下[/home/topetl/lzz]  java -jar ./createFile.jar   /home/topetl/lzz/哦哦LL.txt
file.encoding=============ISO8859-1
[/home/topetl/lzz] ls -ltr
total 56
-rw-r-----   1 topetl   etl              49 Apr 15 04:41 lock.out
-rwxr-x--x   1 topetl   etl             612 Apr 15 04:51 sms.sh
-rwxrwxrwx   1 topetl   etl               6 Apr 15 04:58 abc
drwxr-x---   2 topetl   etl             256 Apr 19 06:52 aaaa
-rw-r-----   1 topetl   etl              71 May  8 09:54 ABC.AVL
-rw-r-----   1 topetl   etl            1256 May  8 16:02 createFile.jar
-rw-r--r--   1 topetl   etl              26 May  8 16:02 哦哦LL.txt
-rw-r--r--   1 topetl   etl              26 May  8 16:02 ??VVVV.txt
[/home/topetl/lzz] cat ??VVVV.txt
可可在测试aaaaaaaaaaaaaaaa[/home/topetl/lzz] cat 哦哦LL.txt
可可在测试aaaaaaaaaaaaaaaa[/home/topetl/lzz] 如果文件名是传入的,就是正常
但是我自己在java中写的就是不正常的文件中数据也是正常,但是如果不经过
“stdout = new BufferedWriter(new OutputStreamWriter(fw,"gb2312"));”
这样一个编码处理,也会是不正常的,之前也试过了
但是对于文件名该如何处理呢?请大虾指教啊