先向文件中写入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到底是什么
------解决方案--------------------