java - 在JAVA中读取二进制文件
问题描述
好的,所以我正在学习在 java 中编写和读取二进制文件,这是我在谷歌搜索到的所有地方都建议使用的方法 这是加权类
public Writer(String fileName, String text) throws IOException {
ObjectOutputStream output = null;
try{
output = new ObjectOutputStream(new FileOutputStream(fileName, true));
} catch (FileNotFoundException e) {
System.out.println("File not found!");
System.exit(0);
} catch (IOException e) {
System.out.println("IO Exception!!");
System.exit(0);
}//THE TEXT HERE IS "test"
output.writeChars(text);
output.close();
System.out.println("Successful writing!");
}
这是阅读课
public Reader(String fileName) throws IOException {
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream(fileName));
} catch (FileNotFoundException e) {
System.out.println("File Not found!");
System.exit(0);
} catch (IOException e) {
System.out.println("IO Exception!!");
System.exit(0);
}
int i;
while ((i = in.read()) != -1){
System.out.print((char) i);
}
in.close();
}
但后来我的输出是测试“每个字符之间都有正方形”
解决方案
对于二进制、非文本,文件DataInputStream/DataOutputStream
更清晰。
try (FileOutputStream fos = new FileOutputStream("test.bin");
DataOutputStream dos = new DataOutputStream(fos)) {
dos.writeUTF8("La projekto celas ŝtopi breĉojn en Vikipedio");
dos.writeInt(42);
dos.writeDouble(Math.PI);
}
try (FileInputStream fis = new FileInputStream("test.bin");
DataInputStream dis = new DataInputStream(fis)) {
String s = dis.readUTF8(); // "La projekto celas ŝtopi breĉojn en Vikipedio"
int n = dis.readInt(); // 42
double pi = dis.readDouble() // Math.PI
}
writeUTF8
写入一个长度和一个 UTF-8 编码的字符串。Unicode 格式,因此可以编写任何脚本。可以混合使用日语、希腊语、表情符号和保加利亚语。
推荐阅读
- jpa - Injecting Services in Entity Listener ...?
- php - Authy PHP - You are not passing the user params correctly
- asp.net - 禁用 TLS 1.0 会破坏 ASP.NET 应用程序
- javascript - How to use a material stepper in Angular 5
- ssl - SSL handshake with SNI extension enabled - certificate selection on server
- sas - SAS PROC SQL:如何添加尾随空格?
- nginx - 使用 proxy_protocol 时在 nginx 中阻止 CIDR 范围的更好方法是什么?
- android - 如何使用各种领域数据库?
- puppet - 如果间隔为 24 小时,Puppet 是否会在启动时签入?
- javascript - 无法在javascript中使用前一个元素兄弟增加最后一个元素