您现在的位置:龙卷风首页 ›› 情感日记 ›› 阅读文章

《TIJ》第11章练习3

题目是要求只打开一次文件吗?那只能用RandomAccessFile了,如果不是这么要求,则可以用下面这种解法。原来FileWriter在建立对象的时候,可以指定是覆写还是添加到文件的后面。

3、修改练习2的程序,使能同时开启一个文本文件,并得以将文本写至该文件。请将各行文本及行号写入ArrayList内(请不要企图使用本章提到的那些“LineNumber”classes),然后写入文件。

疑惑:题目是要求只打开一次文件吗?那只能用RandomAccessFile了,如果不是这么要求,则可以用下面这种解法。原来FileWriter在建立对象的时候,可以指定是覆写还是添加到文件的后面。

import java.io.*;
import java.util.*;

public class C11P3 {
 
 /**
  * Method main
  *
  *
  * @param args
  *
  */
 public static void main(String[] args)
 throws IOException {
  // TODO: Add your code here
  if(args.length == 0)
  {
   System.err.println("请选择文件!");
  }
  else
  {
   String fileName = args[0];
   BufferedReader br = new BufferedReader(
    new FileReader(fileName));
   ArrayList al = new ArrayList();
   String s = new String();
   int rowNumber = 1;
   while((s = br.readLine()) != null)
   {
    al.add(rowNumber++ + ": " + s);
   }
   br.close();
   
   PrintWriter pw = new PrintWriter(
    new BufferedWriter(
     new FileWriter(fileName,true)));
   Iterator it = al.iterator();
   while(it.hasNext())
   {
    pw.println((String)it.next());
   }
   pw.close();
  }
 } 
}

作者 不见不散 本文仅代表作者观点,与龙卷风资讯网立场无关。

我来说两句

内容/Content