在文件写入的时候,我使用DataOutputStream流,但是用writeChar()写入字符后却发现数字,符号都是乱码.而且字符之间都出现了一个空格,哪位帮忙解释一下什么原因啊,如何解决//
    还有一个问题没有解决,就是我往文件了写入一个空格,用writeChar('\n')和writeByte('\n')后,发现写入的是乱码,请问是什么原因啊???

解决方案 »

  1.   

    这里是一个例子,你可以参考一下.在要插入回车和换行的地方加上newLine.
    import java.io.*;
    import java.util.*;
    public class FileWrite{
    public static void main(String[] args){
    try{
    File file=new File("d:\\a.txt");
    FileOutputStream fis=new FileOutputStream(file);
    DataOutputStream dos=new DataOutputStream(fis);
    Properties pp = System.getProperties();
    String newLine = pp.getProperty("line.separator");
    dos.writeBytes("hello"+newLine);
    dos.writeUTF("good");
    dos.close();
    fis.close();
    }
    catch(IOException e){}}
    }
      

  2.   


    import java.util.*;
    //...
    Properties pp = System.getProperties();
    String newLine = pp.getProperty("line.separator");
    //...
    感谢kaleon(为人要厚道),用这种方法确实可以解决文件写入换行的问题.
    但是输出符号(如空格,&,#之类),还是乱码,无法识别,有什么解决方法啊.
      

  3.   

    DataOutputStream写数据用的是2进制,你如果想写能让人看懂的Ascii码数据的话,就用PrintWriterOutputStream fos = new FileOutputStream("C:/test.txt");
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(fos));
    pw.println("Hello");
    pw.println(123);
    ...
    pw.close();
      

  4.   

    我写文件的时候总是这样做的:
    ......
                BufferedWriter bw = new BufferedWriter(new FileWriter("C:\aaa.txt"));
                bw.write("你妈贵姓");
                bw.newLine();
                bw.close();
    ......
    楼主可以试一试这种方式