OutputStream out = new FileOutputStream("filename");
OutputStreamWriter(out,"gb2312");

解决方案 »

  1.   

    在Java里,如何去掉文件的只读属性? 还有隐藏属性?
      

  2.   

    目前的JDK好象不支持改这些属性,只是单向的设置!
    你看看JDK1。4中有没有支持的方法!
    没有的话,你就读出新生成一个文件吧!
    下面的程序是关于解决中文问题的!import java.io.*;
    class BRRead{
      public static void main(String arg[])
        throws IOException
       {
              String str;
         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
         System.out.println("Enter string lines,'stop' to quit.");
        //read characters
       FileOutputStream fos=new FileOutputStream("22.txt");
       DataOutputStream out=new DataOutputStream(fos);
         do{
            str=br.readLine();
          out.writeBytes(new String(str.getBytes("GBK"), "ISO-8859-1"));
          out.writeBytes("\r\n");
          //c=(char)br.read();
          //System.out.println(c) ;
           }while(str.equals("stop")==false);
         fos.close();
         out.close();
       }
     }
      

  3.   

    首先,感谢zhjjava(狂人一个)。out.writeBytes(new String(str.getBytes("GBK"), "ISO-8859-1"));呵呵,这句是关键!!请问 API里的charsetName有哪些?我经常看到的"gb2312"跟"ISO-8859-1"有什么区别?
      

  4.   

    JDK是不支持可写的设置。
    只允许设置只读。
    你打开jdk1.4的源代码,在java.io下有FileSystem.java类,里面有个setReadOnly方法,
    File类的设置方法就是由FileSystem支持的。可FileSystem并不提供对外的支持。
    也不支持写的设置。
      

  5.   

    API里的charsetName,有很多了,
    解压jre下的it.jar并反编译CharsetToEncoding.class(好象是这个类,具体名字记不清楚了)可以查看到具体的 char set。
      

  6.   

    io 不支持的就是说改成ReadOnly就改不回去啦