java.io FileOutPutStream - 字符之间有空格。为什么?

时间:2012-11-29 01:26:43

标签: java string java-io

我想用这段代码写一些东西,但是在我运行之后,字符之间有空格。但在代码中我不给字符串空间。

import java.io.*;

public class WriteText{

public static void main(String[] args) {

FileOutputStream fos; 
DataOutputStream dos;

try {

  File file= new File("C:\\JavaWorks\\gui\\bin\\hakki\\out.txt");
  fos = new FileOutputStream(file);
  dos=new DataOutputStream(fos);

  dos.writeChars("Hello World!");
} 

catch (IOException e) {
  e.printStackTrace();
}

 }

 }

输出是(在文本文件中):H e l l o W o r l d !

2 个答案:

答案 0 :(得分:5)

使用writeBytes

dos.writeBytes("Hello World!");

基本上,writeChars会将每个字符写为2个字节。你看到的第二个是额外的空间。

答案 1 :(得分:1)

您也可以使用FileWriter和BufferedWriter;不要忘记在完成后关闭缓冲区或dos。

        FileWriter file; 
        BufferedWriter bw = null;

    try {

        file = new FileWriter("C:\\JavaWorks\\gui\\bin\\hakki\\out.txt");
        bw = new BufferedWriter(file);

        bw.write("Hello World!");
    } 

    catch (IOException e) {
        e.printStackTrace();
    }

    finally{
        try{
            bw.close();
        }

        catch(IOException e){
            e.printStackTrace();
        }
    }