Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 相同的代码和数据,但输出不同的内容?_Java_Android_Binaryfiles - Fatal编程技术网

Java 相同的代码和数据,但输出不同的内容?

Java 相同的代码和数据,但输出不同的内容?,java,android,binaryfiles,Java,Android,Binaryfiles,我有以下代码,用于将列表数组写入dat文件,我在OnePlus2上运行,IDE是AndroidStudio 1.3 private void writeToFile(List<Short> list) throws IOException { String stringTransform = transform(list); String str = new String(stringTransform.getBytes(), "ascii"); byte[

我有以下代码,用于将列表数组写入dat文件,我在OnePlus2上运行,IDE是AndroidStudio 1.3

private void writeToFile(List<Short> list) throws IOException {

    String stringTransform = transform(list);
    String str = new String(stringTransform.getBytes(), "ascii");
    byte[] bytes = new byte[str.length() / 8];
    char chatAt;
    for (int i = 0; i < str.length() / 8; i++) {
        for (int j = 0; j < 8; j++) {
            chatAt = str.charAt(i * 8 + j);
            if (chatAt == '1') {
                byte b = (byte) (0x80 >> j);
                bytes[i] = (byte) (bytes[i] | b);
            }
        }
    }
    FileOutputStream fos = new FileOutputStream("/sdcard/1.dat");
    fos.write(bytes);
    fos.close();
    fos.flush();


}
private String transform(List<Short> list) {
    StringBuilder sb = new StringBuilder(list.size());
    for (Short integer : list) {
        sb.append(integer);
    }

    return sb.toString();
}
private void writeToFile(列表)引发IOException{
String stringTransform=转换(列表);
String str=新字符串(stringTransform.getBytes(),“ascii”);
byte[]bytes=新字节[str.length()/8];
查查塔特;
对于(int i=0;i>j);
字节[i]=(字节)(字节[i]| b);
}
}
}
FileOutputStream fos=新的FileOutputStream(“/sdcard/1.dat”);
fos.写入(字节);
fos.close();
fos.flush();
}
私有字符串转换(列表){
StringBuilder sb=新的StringBuilder(list.size());
for(短整数:列表){
sb.追加(整数);
}
使某人返回字符串();
}
但是,我在不同的时间输入相同的数据,生成的dat文件将显示不同的内容,如图所示:


这与您的代码无关。这是关于您使用的程序和编码。尝试在编辑器中更改编码。如果是二进制文件,我建议使用升华文本3: