打开一个记事本文件,对其中的某一特定字节+1,然后再写回去。

解决方案 »

  1.   

    双击记事本文件--> 修改 --> 保存 ^_^
      

  2.   

    哈哈,yuzl32(Hello!有酒醉)是高手
      

  3.   

    import java.io.*;
    public class test
    {
    public static void main(String[] args)throws Exception{
    FileInputStream fin=new FileInputStream("qa.txt");
    FileOutputStream fout=new FileOutputStream("2q.txt");
    int replace="test".getBytes()[0];
    int i=0;
    while((i=fin.read())!=-1){
                               if(i==replace)i++; fout.write(i);

    }
    fout.flush();
    fout.close();
    fin.close(); }
    };
      

  4.   

    改下不就得了
    让FOUT也打开qa.txt
      

  5.   

    改下不就得了
    让FOUT也打开qa.txt
    ---------把FileOutputStream fout=new FileOutputStream("2q.txt");改成:FileOutputStream fout=new FileOutputStream("qa.txt");吗?这样不行,qa内容成空的了。
      

  6.   

    按dztc()的方法做, 然后把原文件删除,再把新文件的文件名改成原文件的名称
      

  7.   


    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;/*
     * 创建日期 2006-4-12
     *
     * TODO 要更改此生成的文件的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    /**
     * @author Administrator
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    public class aaa {
        public static final String fileName = "c:/aaa.txt";    public static void main(String[] args) {
            try {
                FileInputStream fin = new FileInputStream(fileName);
                byte[] blist = getBytesByInputStream(fin);
                blist[2] = (byte) ((int) blist[2] + 1);
                saveBytesToFile(blist, fileName);
            } catch (Exception e) {
            }
        }    public static byte[] getBytesByInputStream(InputStream fin) throws Exception {
            ByteArrayOutputStream bStream = new ByteArrayOutputStream();
            byte[] buf = new byte[1024];
            int nc = 0;
            while ((nc = fin.read(buf, 0, buf.length)) > 0) {
                bStream.write(buf, 0, nc);
            }
            return bStream.toByteArray();
        }    public static int saveBytesToFile(byte[] savestr, String filename) {
            try {
                FileOutputStream fos = new FileOutputStream(filename);
                fos.write(savestr);
                fos.flush();
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
                return -1;
            }
            return 0;
        }
    }
      

  8.   

    cxz7531(大花猫)
    似乎有局限性
    ////////////////////////
    可以这样
    如果文件很大可以
    新建临时文件。
    然后再覆盖原文件。
    删除临时文件。
      

  9.   


    上面的办法是把文件全部读出到内存,然后修改一个字节,再保存回去,如果文件小还无所谓,要是文件很大(比如几十M的话)的话,读出和保存的开销太大。下面这个办法是用随机读写,直接打开文件,然后写入一个字节,关闭文件,避免整体读出和整体保存。数据库文件和系统日志文件几乎都是这种随机读写的方式。package cxz.context;import java.io.RandomAccessFile;public class aaa {
        public static final String fileName = "c:/aaa.txt";    public static void main(String[] args) {
            try {
                RandomAccessFile rF = new RandomAccessFile(fileName, "rw");
                rF.seek(2);
                byte b = rF.readByte();
                rF.seek(2);
                rF.write(b + 1);
                rF.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
      

  10.   

    cxz7531(大花猫) 的第一个例子里面需要fin.close()关闭一下输入流.