我有一个TXT..现在用的是 OutputStream 和 InputStream ,,但是我要把文件内容加几个字。然后再保存..但是当我打开的时候.文件格式全部乱了.有没有办法读或者写的时候都保持文件原有格式的办法

解决方案 »

  1.   

    具体点啊,TXT文件是本地创建好的,还是通过OutputStream创建的等,连代码贴出来看看
      

  2.   

    假设我现在在TXT里面的文件是这样的
    1
    22
                     333
    4         4
    然后处理后,成了
    12233344   .我现保持原有的格式,请问怎么做
      

  3.   

    代码如下,楼主可以参考下: /**
     * 往文件写入内容
     * @param fileName 文件名称(包括完整绝对路径)
     * @param fromEnd T/F——重写文件/从文尾开始写
     * @param sb 要写入的内容
     * @throws Exception
     */
    private static void write(String fileName, boolean fromEnd, StringBuffer sb) throws Exception {
    RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
        if(fromEnd){
    raf.seek(raf.length());
    raf.writeBytes(sb.toString());
    System.out.println(fileName + " 文尾 写入成功!***************");
        }else{
    File f = new File(fileName);
    FileOutputStream fos=new FileOutputStream(f);
    fos.close();
    raf.writeBytes(sb.toString());
    System.out.println(fileName + " 重写 写入成功!***************");
        }
    }
      

  4.   

    难道JAVA里面不支持这样做的么``?应该不是吧。肯定会有办法的额。
      

  5.   

    楼主还需要读操作?
    那可以用以下的: /**
     * 读文件内容
     * @param fileName 文件名称(包括完整绝对路径)
     * @throws Exception
     */
    private static void read(String fileName)throws Exception{
    System.out.println(fileName +  " 开始读***************");
    FileReader fr = new FileReader(fileName);
    BufferedReader br = new BufferedReader(fr);
    String temp = null;
    do {
    temp = br.readLine();
    System.out.println(temp == null ? "" : temp);
    } while (temp != null);
    fr.close();
    br.close();
    System.out.println(fileName +  " 已经读完!***************");
    }
      

  6.   

    反正就是java里分二进制流和字符流两种,你要是读写二进制文件,就是用记事本打开都是乱码的文件,就用InputStream,如果是字符文件,用记事本打开能看到字,那就用Reader.