0

我想将字节数组作为字节写入文件。例如byt[] ="hello".getBytes(); ,我想将字节写入文件,以便将内容视为字节,而不是“你好”。我怎样才能做到这一点?

4

4 回答 4

3

您可以使用FileOutputStream#write(byte[] b)

于 2013-06-11T05:10:50.077 回答
2

FileOutputStream fos = new FileOutputStream(strFilePath);
String strContent = "hello";
fos.write(strContent.getBytes());
于 2013-06-11T05:15:06.677 回答
0

这里有很多答案,但所有人都缺少一件非常重要的事情。

不要使用String.getBytes().

始终使用String.getBytes(Charset).

未知(默认)字符集是文件操作中所有(大多数情况下)邪恶的根源。

如果您不知道要使用哪个字符集,只需使用 UTF-8 并调用FileOutputStream.write(aString.getBytes(Charset.forName("UTF-8")));

您还可以定义一个用于整个应用程序的字符集,以便将来轻松更改。

class CharsetSettings {
  static final String fileOperationsCharset = Charset.forName("UTF-8");
}
于 2013-06-11T06:56:40.613 回答
0

考虑以下方法

public static void writeByteCodeToFile(){
    String hello = "Hello";
    byte[] getByte = hello.getBytes();
    System.out.println(getByte); // output>>>[B@1df073d
    try {
        FileOutputStream fos = new FileOutputStream("D:\\Test.txt");
        try {
            fos.write(getByte);
        } catch (IOException e) {
            e.printStackTrace();
        }

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

Test.txt 中的输出包含“Hello”,而我们可以看到控制台输出为 [B@1df073d. 原因是文本编辑器可以将字节码呈现为文本。

于 2013-06-11T06:45:39.967 回答