问题有二。
一、我想往一个文本文件中添加文件头,比如{(byte)0xEF, (byte)0xBB, (byte)0xBF},用来表示该文件是UTF-8编码。
二、我想顺序读取文本文件中的每一行,然后在其中的第二个字符后再添加一个字符串,回写到原文件中。请教一下具体该怎么实现?谢谢

解决方案 »

  1.   

    第2个问题
    2种方式
    第一种 直接行读取源文件,然后添加字符串,然后整行写进源文件或者新建文件
    第二种 标示读取,选择一些可以skip的流,然后追加,skip多少的确定是关键两者效率应该差不多,第2种的流比较慢,如果文件大,第一种估计比较耗资源
      

  2.   


    参考代码:import java.util.*;
    import java.io.*;public class InsertFile {

    /**
     * 
     * @param srcFile  源文件名
     * @param str     第二个字符后要插入的中
     * @throws Exception
     */
    private static void insertFile(String srcFile,String str) throws Exception
    {
    File f=new File(srcFile);
    Scanner sc=new Scanner(f);

    File tmp=File.createTempFile("__tmp___", ".tmp", new File(f.getParent()));
    PrintWriter pw=new PrintWriter(tmp);
    String line=null;
    while(sc.hasNextLine())
    {
    line=sc.nextLine();
    line=line.substring(0,2)+str+line.substring(2);
    pw.println(line);
    }
    sc.close();
    pw.flush();
    pw.close();
    f.delete();
    tmp.renameTo(f);

    } /**
     * @param args
     */
    public static void main(String[] args)throws Exception {
    // TODO 自动生成方法存根
         insertFile("c:/jns.txt", "TTT");
    }}