首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-05-27 
Java IO 中 ,0xFF read出来,在write回去后变成3F,why?先向文件中写入6个0xFF,再读取刚写的数据,将读取到的

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到底是什么


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

热点排行