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。谢谢。
 */

解决方案 »

  1.   

    你为啥还转换来转换去的呢?直接 fos.write(b1); 不就完了
      

  2.   

    是啊,这样可以的。多谢。
    但是这个字符后面会有一串字符,要读取这段字符,将第一个字节改成FF后再保存回去。这样好像就不能用fos.write(int i);
    我再试试先。thx。
      

  3.   

    for example
    byte[] b = {(byte)-1};
    FileOutputStream fos = new FileOutputStream("E:\\onebyte.txt");
    fos.write(b);
    fos.close();