我想实现的功能是这样:就是写一些数据追加到一个txt文件里面。。不追加到末尾,,而是从开始添加。。其他的内容往后移动。。怎么解决啊???

解决方案 »

  1.   


    java.io.RandomAccessFile ra = new java.io.RandomAccessFile("11.txt","rwd");
    //设置到文件开头
    ra.seek(0);
    //在文件开头添加“11”
    ra.writeBytes("11");
      

  2.   

    其实不行。
    这段代码会把原来文件(11.txt)中的前两个字覆盖掉!
      

  3.   


    思路:
    1、把txt原来内容取出来,保存在byte数组里。
    2、然后输出流把后来内容写入。
    3、然后追加刚才取出来的内容。
      

  4.   

    1.新建一个txt文件(b.txt);
    2.写你打算追加的一些数据;
    3.读原先的txt文件内容,写到b.txt中;
    4.删除原先的txt;
    5.重命名b.txt;O(∩_∩)O哈哈~
      

  5.   

    个人认为可以先根据将txt中的文字先取出来,保存在一个数组中,再将要添加的文字加入到数组的前面,然后再将数组写入原来的txt文本文件中!不知道这样行不行,请各大侠解说一下!
      

  6.   

    先把原来文件中的字符串都拿出来并作为一个String保存下来,然后创建同名文件,再直接往里写内容;
    最后把之前拿出来的String用append方法添加到文件中;
    OK
      

  7.   

    我的方法更简单:
    1、把老文件改个临时的名字
    2、把新内容用老文件的名字写入
    3、用DOS的COPY命令合并2个文件
      

  8.   


    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;public class Sample06 { /**
     * @param args
     */
    public static void main(String[] args) {
    File f = new File("test.txt");
    boolean isOk = true;

    if (!f.exists()) {
    try {
    f.createNewFile();
    } catch (IOException e) {
    e.printStackTrace();
    isOk = false;
    }
    }

    // 输出到文件
    if (isOk) {
    try {
    FileOutputStream fos = new FileOutputStream(f, true);
    fos.write("今天是个好天气!".getBytes());
    fos.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    } else {
    System.out.println("文件不存在!");
    }

    // 从文件读取
    if (isOk) {
    try {
    FileInputStream fis = new FileInputStream(f);

    // int data = 0;
    // while ((data = fis.read()) != -1) {
    // System.out.write(data);
    // }
    // System.out.flush();
    // System.out.println();

    byte[] data = new byte[1024];
    int len = 0;
    while ((len = fis.read(data)) != -1) {
    System.out.print(new String(data, 0, len));
    }
    // while ((len = fis.read(data, 0, 3)) != -1) {
    // System.out.print(new String(data, 0, len));
    // }

    System.out.println();
    fis.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }}
      

  9.   

    不好意思,log4j好像是后面添加的,呵呵