如何将二进制文件写入 Java 中的文件
How to write binary to a file in Java
我正在尝试从文件中获取输入,将字符转换为二进制,然后将二进制输出到另一个输出文件。
我使用 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
我正在尝试从文件中获取输入,将字符转换为二进制,然后将二进制输出到另一个输出文件。
我使用 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