【发布时间】:2012-07-08 02:58:41
【问题描述】:
我在 C# .net 中有一个程序,它使用 BinaryWriter.Write() 将 1 个整数和 3 个字符串写入文件。
现在我正在使用 Java 编程(对于 Android,而且我是 Java 新手),我必须访问以前使用 C# 写入文件的数据。
我尝试使用DataInputStream.readInt() 和DataInputStream.readUTF(),但无法获得正确的结果。我通常会得到一个UTFDataFormatException:
java.io.UTFDataFormatException:字节 21 左右的输入格式错误
或者我得到的String 和int 是错误的......
FileInputStream fs = new FileInputStream(strFilePath);
DataInputStream ds = new DataInputStream(fs);
int i;
String str1,str2,str3;
i=ds.readInt();
str1=ds.readUTF();
str2=ds.readUTF();
str3=ds.readUTF();
ds.close();
这样做的正确方法是什么?
【问题讨论】:
-
你用什么编码写的文件?您必须使用 same 编码来读取它们。
-
如果您打算跨平台读取数据,则应使用可互操作的格式。