日期:2014-05-20  浏览次数:20834 次

请教如何将一个字节的值保存为0xFF
import java.io.*;
/*
 * 目的是要将文本文件中的某一个字节,例如第一个字节,设置成00(表示文件正常),01表示文件被锁住,0xFF表示文件已被标记为删除,

public class SaveAsByte {
public static void main(String[] args) {
File file = new File("E:\\onebyte.txt");
byte b1 = -1;//byte型-1的八位都是1
FileOutputStream fos = null;
try {
String s = new String(new byte[]{b1});
byte[]b = s.getBytes();
fos = new FileOutputStream(file);
fos.write(b);
} catch (Exception e) {
e.printStackTrace();
}
finally{
try {
if(fos!=null) fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
[/code]
 * 将该字节设为00或01再保存到文件时正常(不难),但是保存0xFF时,用UE打开保存后的文件,用16进制编辑查看时,发现该字节是3F,并不是预期的FF,请问这是怎么回事。应该怎么操作才能将该字节保存为FF。谢谢。
 */

------解决方案--------------------
你为啥还转换来转换去的呢?

直接 fos.write(b1); 不就完了。。。
------解决方案--------------------
for example
Java code
byte[] b = {(byte)-1};
FileOutputStream fos = new FileOutputStream("E:\\onebyte.txt");
fos.write(b);
fos.close();