首先判断如果一个文件不存在那么创建文件,并写1000行数据,
如果文件存在,那么打开文件接着原来的1000行后面接着写。给100分。
  private static void writerFile(List list, String fileName) {
        // String name = fileName.substring(0, fileName.length() - 5);
        // String createfileName = path + "/" + name + "." +fileSuffix;
        try {
            
                File tmpFile = new File(fileName);
                FileWriter fw = new FileWriter(tmpFile);                if (list != null && list.size() > 0) {
                    for (int i = 0 ; i < list.size() ; i ++) {
                        String txt  = (String)list.get(i);
                        System.out.println(txt);
                        String str[] = txt.split("\\|");                             fw.write(txt);
                            fw.write("\n");
                  
                    }
                }
                fw.close();
}

解决方案 »

  1.   

    package updateData;import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.io.RandomAccessFile;public class connectFile { /**
      * 
      * 功能描述:创建TXT文件并进行读、写、修改操作
      *      
      * @author <a href="mailto:[email protected]">KenZhang</a>
      * @version 1.0 
      * Creation date: 2007-12-18 - 下午06:48:45
      */
         public static BufferedReader bufread;
         //指定文件路径和名称
         private static String path = "D:/suncity.txt";
         private static  File filename = new File(path);
         private static String readStr ="";
         /** *//**
          * 创建文本文件.
          * @throws IOException 
          * 
          */
         public static void creatTxtFile() throws IOException{
             if (!filename.exists()) {
                 filename.createNewFile();
                 System.err.println(filename + "已创建!");
             }
         }
         
         /** *//**
          * 读取文本文件.
          * 
          */
         public static String readTxtFile(){
             String read;
             FileReader fileread;
             try {
                 fileread = new FileReader(filename);
                 bufread = new BufferedReader(fileread);
                 try {
                     while ((read = bufread.readLine()) != null) {
                         readStr = readStr + read+ "\r\n";
                     }
                 } catch (IOException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                 }
             } catch (FileNotFoundException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }         System.out.println("文件内容是:"+ "\r\n" + readStr);
             return readStr;
         }
         
         /** *//**
          * 写文件.
          * 
          */
         public static void writeTxtFile(String newStr) throws IOException{
             //先读取原有文件内容,然后进行写入操作
             String filein = newStr + "\r\n" + readStr + "\r\n";
             RandomAccessFile mm = null;
             try {
                 mm = new RandomAccessFile(filename, "rw");
                 mm.writeBytes(filein);
             } catch (IOException e1) {
                 // TODO 自动生成 catch 块
                 e1.printStackTrace();
             } finally {
                 if (mm != null) {
                     try {
                         mm.close();
                     } catch (IOException e2) {
                         // TODO 自动生成 catch 块
                         e2.printStackTrace();
                     }
                 }
             }
         }
         
         /** *//**
          * 将文件中指定内容的第一行替换为其它内容.
          * 
          * @param oldStr
          *            查找内容
          * @param replaceStr
          *            替换内容
          */
         public static void replaceTxtByStr(String oldStr,String replaceStr) {
             String temp = "";
             try {
                 File file = new File(path);
                 FileInputStream fis = new FileInputStream(file);
                 InputStreamReader isr = new InputStreamReader(fis);
                 BufferedReader br = new BufferedReader(isr);
                 StringBuffer buf = new StringBuffer();             // 保存该行前面的内容
                 for (int j = 1; (temp = br.readLine()) != null
                         && !temp.equals(oldStr); j++) {
                     buf = buf.append(temp);
                     buf = buf.append(System.getProperty("line.separator"));
                 }             // 将内容插入
                 buf = buf.append(replaceStr);             // 保存该行后面的内容
                 while ((temp = br.readLine()) != null) {
                     buf = buf.append(System.getProperty("line.separator"));
                     buf = buf.append(temp);
                 }             br.close();
                 FileOutputStream fos = new FileOutputStream(file);
                 PrintWriter pw = new PrintWriter(fos);
                 pw.write(buf.toString().toCharArray());
                 pw.flush();
                 pw.close();
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }
         /** *//**
          * main方法测试
          * @param s
          * @throws IOException
          */
         public static void main(String[] s) throws IOException {
          connectFile  ReadWriteFile = new connectFile();
             ReadWriteFile.creatTxtFile();
             ReadWriteFile.readTxtFile();
             ReadWriteFile.writeTxtFile("20080808:12:13");
    //         ReadWriteFile.replaceTxtByStr("ken", "zhang");
         }
     }
      

  2.   

    FileWriter fw = new FileWriter(tmpFile, true); 
    这样,如果文件已经存在,就在文件末尾写入内容
      

  3.   

    回laorer
    现在有很多数据文件,文件都很大3-4G左右一个,我需要把里面的数据读出来然后分解,
    ABC|DEF|GHI|11231|fsdfjs
    都是以|分隔一行一行的。我需要吧ABC部分找到新的对应数据, 
    替换后生成一个新的文件。因为文件实在太大了。数据量太大了。不能一直读完加载。我的思路是先读1000行然后生成文件写1000行,
    下次从1001行开始再读1000行,然后打开文件从1001行继续写。一直循环到文件结束。
      

  4.   


    这个问题很容易解决。每次读一行,然后处理后,写入另一个文件。 public void testWriteFile(String dataFilename, String outDataFilename) throws Exception {
    //dataFile 原数据文件
    File dataFile = new File(dataFilename);
    //finalFile 处理后的文件
    File finalFile = new File(outDataFilename); BufferedReader reader = null;
    BufferedWriter writer = null; try {
        reader = new BufferedReader(new FileReader(dataFile));
        writer = new BufferedWriter(new FileWriter(finalFile));
        
        String line = null;
        while ((line = reader.readLine()) != null) {
         //对读出的每行数据进行处理
         //用processLine(String line) 实现
         String newLineData = processLine(line);
         //然后写入处理后的文件
         writer.append(newLineData);
         writer.newLine();
        }
        
        writer.flush();
    }
    finally {
       if (reader != null) {
       reader.close();
       }
    }
    }
      

  5.   

    回sgcl processLine(line)是什么?