如何使用FileOutputStream在文件中写入整数?

时间:2019-07-02 14:53:56

标签: java fileoutputstream

当我想在文件中写入文本时,我将其转换为字节,然后将其保存在字节数组中,然后将其与FileOutputStream一起发送到文件中。 如果我想写一个整数??

    String filename = "testFile.txt";
    OutputStream os = new FileOutputStream(filename);
    String someText = "hello";
    byte[] textAsByte = someText.getBytes();
    os.write(textAsByte);

    int number = 20;
    byte numberAsByte = number.byteValue();
    os.write(numberAsByte);

我正在(你好) 预期结果:Hello20

3 个答案:

答案 0 :(得分:1)

您并不是真的想写整数。您要做的是编写整数的字符串表示形式。因此,您需要将其转换为String,您可以使用String.valueOf()轻松地将其转换为20成为"20"

   os.write(String.valueOf(number).getBytes())

如果文件是文本文件,则可以考虑使用Writer而不是OutputStream,这意味着您不必担心字节。

   String filename = "testFile.txt";
   try (BufferedWriter out = new BufferedWriter(new FileWriter(filename))) {
        out.write("hello");
        out.write(String.valueOf(20));
   }

还可以使用try-with-resource包装您的OutputStream或Writer,这样您就不必担心在发生意外情况时关闭流。

答案 1 :(得分:0)

尝试这样的事情:

public static void main(String[] args) throws IOException {
      FileOutputStream fos = null;
      byte b = 66;

      try {
         // create new file output stream
         fos = new FileOutputStream("C://test.txt");

         // writes byte to the output stream
         fos.write(b);

         // flushes the content to the underlying stream
         fos.flush();

答案 2 :(得分:0)

您要将数字的字符串表示形式写到文件中,因此需要首先将其转换为字符串。

int number = 20;
os.write(Integer.toString(number).getBytes());