java中想在一个文件中的某一个位置插入内容,如何操作?
ms_eye 提问于:2017-06-05
1 0

也就是指定文件,指定位置插入内容

  • 所有回答
running 回答于:2017-06-05
0 0
/**
     * 
     * @param fileName 文件
     * @param pos 插入位置
     * @param insertContent 插入内容
     * @throws IOException
     */
    public static void insert(String fileName, long pos, String insertContent)throws IOException{

        RandomAccessFile raf = null;
        File tmp = File.createTempFile("tmp", null);
        FileOutputStream tmpOut = null;
        FileInputStream tmpIn = null;
        tmp.deleteOnExit();

        try{

            raf = new RandomAccessFile(fileName, "rw");

            tmpOut = new FileOutputStream(tmp);

            tmpIn = new FileInputStream(tmp);

            raf.seek(pos);

            byte[] bbuf = new byte[64];

            int hasRead = 0;

            while ((hasRead = raf.read(bbuf)) > 0){

                tmpOut.write(bbuf, 0, hasRead);

            }

            raf.seek(pos);

            raf.write(insertContent.getBytes());

            while ((hasRead = tmpIn.read(bbuf)) > 0){

                raf.write(bbuf, 0, hasRead);
            }

        }finally{
            raf.close();
        }
    }

测试:

public static void main(String[] args) throws IOException {
          insert("D:/content.txt", 0,"abc");
    }
我来回答    java中想在一个文件中的某一个位置插入内容,如何操作?