当前位置: 代码迷 >> J2SE >> Java IO 中 ,0xFF read出来,在write回去后变成3F,why?该怎么处理
  详细解决方案

Java IO 中 ,0xFF read出来,在write回去后变成3F,why?该怎么处理

热度:108   发布时间:2016-04-24 00:56:51.0
Java IO 中 ,0xFF read出来,在write回去后变成3F,why?
先向文件中写入6个0xFF,再读取刚写的数据,将读取到的再次写到文件,文件却变成了3个0x3F, 数值变了,个数也减半。请教这是为什么?

有个任务就是要不断在文件中将特定字节的0变成0xFF以作为该条记录是删除还是正常的标记。请问该如何解决这个问题?谢谢。

Java code
import java.io.*;public class DataStreamTest {    public static void main(String[] args) {        File file1 = new File("e:/testff.txt");        File file2 = new File("e:/testff.txt");        FileInputStream fis = null;        FileOutputStream fos = null;        DataInputStream dis = null;        DataOutputStream dos = null;        try {            fis = new FileInputStream(file1);            dis = new DataInputStream(fis);            int n = 0;            byte[] buff = new byte[1024];            String data = "";            int i = 0;            while((n=dis.read(buff))!=-1){                data += new String(buff,0,1,"iso-8859-1");            }                        fos = new FileOutputStream(file2);            dos = new DataOutputStream(fos);            dos.write(data.getBytes());//            dos.write(-1);//            dos.write(-1);//            dos.write(-1);//            dos.write(-1);//            dos.write(-1);//            dos.write(-1);        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        } finally {            try {                if(dis!=null)dis.close();                if(fis!=null)fis.close();                if(dis!=null)dis.close();                if(dos!=null)dos.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }}


------解决方案--------------------
你是不写好了之后使用记事本打开来过的?
------解决方案--------------------
你完全可以调试一下,看每次写入的data到底是什么
------解决方案--------------------
探讨

引用:

你完全可以调试一下,看每次写入的data到底是什么


就是每次看着它莫名其妙的变了,才觉得奇怪。不知道是不是系统的编码方式设置的问题。
  相关解决方案