java - 如何用Java将二进制写入文件

标签 java file-io binary

我试图从文件中获取输入,将字符转换为二进制,然后将二进制输出到另一个输出文件。

我使用 Integer.toBinaryString() 来进行转换。

一切都按预期工作,但由于某种原因,没有任何内容写入输出文件,但是当我使用 System.out.println() 时,它输出正常。

import java.io.*;

public class Binary {

    FileReader fRead = null;
    FileWriter fWrite = null;
    byte[] bFile = null;
    String fileIn;

    private String binaryString(int bString) {

        String binVal = Integer.toBinaryString(bString);

        while (binVal.length() < 8) {
            binVal = "0" + binVal;
        }

        return binVal;
    }

    public void input() throws IOException, UnsupportedEncodingException {
        try {
            fRead = new FileReader("in.txt");
            BufferedReader reader = new BufferedReader(fRead);

            fileIn = reader.readLine();
            bFile = fileIn.getBytes("UTF-8");

            fWrite = new FileWriter("out.txt");
            BufferedWriter writer = new BufferedWriter(fWrite);

            for (byte b: bFile) {
                writer.write(binaryString(b));
                System.out.println(binaryString(b));
            }
            System.out.println("Done.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Binary() {

    }

    public static void main(String[] args) throws UnsupportedEncodingException, IOException {
        Binary b = new Binary();
        b.input();
    }

}

我知道我的代码不是很好,我对 Java 还比较陌生,所以我不知道还有很多其他方法可以实现这一点。

最佳答案

使用输出流而不是写入器,因为写入器不应该用于写入二进制内容

FileOutputStream fos = new FileOutputStream(new File("output.txt"));
BufferedOutputStream bos = new BufferedOutputStream(fos);
bos.write(b); // in loop probably

关于java - 如何用Java将二进制写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33069182/

相关文章:

java - 使用 Java 配置将 Spring MVC 拦截器绑定(bind)到 URL

java - Autowiring 抽象组件

java - Android AES/CBC/PKCS5Padding 加密

java - 为 MainActivity 创建一个 ListView holder

python - 使用 SafeConfigParser 在配置文件中设置选项

python - 循环遍历没有扩展名的二进制文件

java - 从对象的 ArrayList 收集信息时的性能注意事项

python - 将新数据写入文件中间

python - 在 Python 中将哈希字符串表示为二进制

python - 将 0 和 1 的字符串转换为它的二进制等效 python