import java.io.*;
import java.util.*;
public class Exercise1 {
public static void main(String[] args)
{
try
{
BufferedReader in=new BufferedReader(new FileReader("data1.txt"));
String s=new String();
String s1=new String();
Vector test=new Vector();
int size=0;
while((s=in.readLine())!=null)
test.addElement(s);
//-----------------------
/*size=test.size();
for(int i=size-1;i>=0;i--)
System.out.println(test.elementAt(i));*/
//------------------------------------------------------
size=test.size();
for(int i=0;i<size;i++)
s1=s1+(String)test.elementAt(i)+"\n";
LineNumberReader li=new LineNumberReader(new StringReader(s1));
BufferedReader in1=new BufferedReader(li);
//PrintWriter out1=new PrintWriter(new BufferedWriter(new FileWriter("data3.txt")));
while((s=in1.readLine())!=null)
System.out.println("Line"+li.getLineNumber()+": "+s);
in1.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
while((s=in1.readLine())!=null) {
System.out.println("Line "+li.getLineNumber()+": "+s);
}
但我这是按照Thinking in java这本书上的例子来写的,不可能有这么明显的错误吧?
但我这是按照Thinking in java这本书上的例子来写的,不可能有这么明显的错误吧?
看了开头我还想问,用了那本书上的例子,太老了,完全可以扔掉了。还在用Vector
而且,现在显然楼上几位告诉你的是正确答案。getLineNumber,代表的是这个对象,当前读到第几行。你在全部读完,放入Vector之后,再去调用getLineNumber,显然他只会告诉你最后一行的行号。
一开始是0,每次调用read类方法的时候,碰到'\n',就会+1。
Thinking in java 中文第四版 10.7.4 小节 NewIODemo.java这个例子 你看下?是不是我的理解有问题。
String text = "a\r\nb\r\nc\r\n";
LineNumberReader r = new LineNumberReader(new BufferedReader(new StringReader(text)));
String tmp = null;
while ((tmp = r.readLine()) != null)
System.out.println("Line" + r.getLineNumber() + ": " + tmp);
r.close();
但我这是按照Thinking in java这本书上的例子来写的,不可能有这么明显的错误吧?
没看过thinking in java ,不过跟前有一本,楼主仿的哪个章节的例子呢,我看看去,我这里的是第四版的。
Thinking in java 中文第四版 10.7.4 小节 NewIODemo.java这个例子 你看下?是不是我的理解有问题。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。