java io流读取txt文本内容

hechenhui1983 2010-04-06 10:33:34
File file = new File("F:\\91sk\\zzc\\D3\\10133\\150010.win");
LineNumberReader fileRead = new LineNumberReader(new InputStreamReader(new FileInputStream(file)));
String str = fileRead.readLine();

我现在想直接读取文本中第五行的内容应该怎么定位到第五行呀???
...全文
847 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshayawo 2010-04-07
  • 打赏
  • 举报
回复
hahahhahahahhahaha!
hanjk1234 2010-04-07
  • 打赏
  • 举报
回复
恩...测试是王道
justlearn 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 hechenhui1983 的回复:]
难道只能循环来读取吗??、
[/Quote]
只用java类库,貌似只能这样了
hechenhui1983 2010-04-07
  • 打赏
  • 举报
回复
难道只能循环来读取吗??、
zyus1987 2010-04-07
  • 打赏
  • 举报
回复
看看API也行会对你有帮助的~!
hjjk123 2010-04-06
  • 打赏
  • 举报
回复
呵呵!看了上面的一些人只看不测试!想当然....不说啥了..........
WilliamTau 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justlearn 的回复:]

fileRead.setLineNumber(4);
String str = fileRead.readLine();
[/Quote]


强力。。。
ccc111111111 2010-04-06
  • 打赏
  • 举报
回复
测试了一下,发觉不能实际改变行位置。
justlearn 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liuhuan851002 的回复:]
引用 8 楼 justlearn 的回复:
重新写了个方法,调用该方法返回指定行,如果超出范围返回null值
传入的行号直接指定行数即可,不用再从0开始,而是从1开始

Java code

public static String readAppointedLine(LineNumberReader reader, int lineNumber) throws IOException……
[/Quote]

确实有点问题,改了下


public static String readAppointedLine(LineNumberReader reader, int lineNumber) throws IOException {
String value = null;
while (reader.getLineNumber() < lineNumber) {
value = reader.readLine();
if (value == null) {
break;
}
}
return value;
}

liuhuan851002 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 justlearn 的回复:]
重新写了个方法,调用该方法返回指定行,如果超出范围返回null值
传入的行号直接指定行数即可,不用再从0开始,而是从1开始

Java code

public static String readAppointedLine(LineNumberReader reader, int lineNumber) throws IOException {
String ……
[/Quote]

这样有点问题把 .
return 后面的 不是当前的这一行了, 是下一行了, 因为 readline() 方法又执行了一遍!
liuhuan851002 2010-04-06
  • 打赏
  • 举报
回复
xuexi
justlearn 2010-04-06
  • 打赏
  • 举报
回复
重新写了个方法,调用该方法返回指定行,如果超出范围返回null值
传入的行号直接指定行数即可,不用再从0开始,而是从1开始

public static String readAppointedLine(LineNumberReader reader, int lineNumber) throws IOException {
String value = null;
while (reader.readLine() != null) {
if (reader.getLineNumber() + 1 == lineNumber) {
return reader.readLine();
}
}

return value;
}
zhanggl1987 2010-04-06
  • 打赏
  • 举报
回复
循环流操作比较通用。。。。
so185582 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhouyongyang621 的回复:]
引用 1 楼 justlearn 的回复:
fileRead.setLineNumber(4);
String str = fileRead.readLine();

正解。。。
[/Quote]
+1
justlearn 2010-04-06
  • 打赏
  • 举报
回复
测试了一下,发觉不能实际改变行位置。api文档提示,该修改只能改变getLineNumber的值
还是得循环读=。=
tdgwj 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justlearn 的回复:]
fileRead.setLineNumber(4);
String str = fileRead.readLine();
[/Quote]受教了
wd9053 2010-04-06
  • 打赏
  • 举报
回复
行号从0开始,第5行的行号为4,readLine方法会读取当前行号所代表的行,然后将当前行号加1
import java.io.*;

public class Test
{
public static String readLine(File aim, int lineIndex)
{
try
{
LineNumberReader lnr = new LineNumberReader(new FileReader(aim));
lnr.setLineNumber(lineIndex);
String value = lnr.readLine();
lnr.close();
return value;
}
catch(Exception ex)
{
ex.printStackTrace();
return null;
}
}
}
梦_枫 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justlearn 的回复:]
fileRead.setLineNumber(4);
String str = fileRead.readLine();
[/Quote]
正解。。。
justlearn 2010-04-06
  • 打赏
  • 举报
回复
fileRead.setLineNumber(4);
String str = fileRead.readLine();
jjj3751386 2010-04-06
  • 打赏
  • 举报
回复
来学习了,不错

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧