黑马程序员技术交流社区
标题:
关于为文本文件加行号的问题
[打印本页]
作者:
王志明
时间:
2012-7-24 18:31
标题:
关于为文本文件加行号的问题
本帖最后由 Mrng8888 于 2012-7-25 00:14 编辑
package test1;
import java.io.*;
import java.util.*;
public class MyBufferedReader {
private Reader r;
public MyBufferedReader(Reader r) {
this.r = r;
}
private String readLine(StringBuilder sb1) throws IOException {
StringBuilder sb2 = new StringBuilder();
int ch;
while ((ch = r.read()) != -1) {
if (ch == '\r') {
continue;
}
if (ch == '\n') {
return sb2.insert(0, sb1).toString();
} else {
sb2.append((char) ch);
}
}
if (sb2.length() != 0) {
return sb2.insert(0, sb1).toString();
}
return null;
}
// 读取一行,带行号功能,起始行号有用户指定
@SuppressWarnings("resource")
public String readLine(int lineNum) throws IOException {
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb);
//***********************************问题***************************************************
//主要是这里,怎么能把行号的位数不写死,比如文件有20行,这里就是%2d,如果是380行,就是%3d,依次类推
formatter.format("%3d: ", lineNum);
return readLine(sb);
}
// 读取一行
public String readLine() throws IOException {
return readLine(new StringBuilder());
}
public void myClose() throws IOException {
r.close();
}
}
复制代码
作者:
李菁
时间:
2012-7-24 19:30
定义一个计数器,每读取一行计数器加1就行了
作者:
肖琦
时间:
2012-7-24 19:42
楼主可以在自己定义的类中定义一个全局变量count,用它专门来计数,循环执行一次就++,这样就可以给每行标号了。
作者:
王志明
时间:
2012-7-24 19:46
我的程序现在就可以表行号的,我想找到一个办法先把写文件前先把行数算出来。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2