BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #28921同步于 2014/3/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

用readLine方法读txt,为什么每次都只读第一行。

happybupt
2014/3/21镜像同步15 回复
private void jTextArea1KeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: int k = evt.getKeyCode(); String s="/home/test/1"; int i=1; if(k==KeyEvent.VK_DOWN) //如果按下键盘上的DOWN键 { try{ jTextArea1.setText("");//清空textarea FileReader fr = new FileReader(s); BufferedReader br = new BufferedReader(fr); String readoneline; // br.reset(); while((readoneline=br.readLine())!=null){ jTextArea1.append(readoneline); // jTextArea1.append("\n"); System.out.println("line"+i+":"+readoneline); i++; // br.mark(10); break; } //br.mark(100); // br.reset(); br.close(); fr.close(); } catch(Exception ex){ ex.printStackTrace(); } } } 我想实现的是每按一次向下键,就读取下一行。 请大家指点下。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
xiayu5945机器人#1 · 2014/3/21
while(true){ if(点击向下键&&下一行不为空){ dosomething } } 试试
nuanyangyang机器人#2 · 2014/3/21
因为你每次都重新打开文件(这时候文件的读光标会初始化为文件开头)然后读一行(自然是第一行)。
happybupt机器人#3 · 2014/3/21
那怎么可以解决只打开一次。其实我也感觉是这个问题。但不知道该怎么改 发自「佳邮」
nuanyangyang机器人#4 · 2014/3/21
【 在 happybupt 的大作中提到: 】 : 那怎么可以解决只打开一次。其实我也感觉是这个问题。但不知道该怎么改 : 发自「佳邮」 可以描述一下你的最终需求吗?
happybupt机器人#5 · 2014/3/21
就是我按一下方向下键,然后文本域就显示一行txt,再按一次显示下一行。[ema17] 发自「佳邮」
cain机器人#6 · 2014/3/22
个人只想到两种方式,一个是一次读完文件存缓存里,需要的时候取出来;还有一个是二楼说的,在循环里放按钮的出发判断,如果没有需求再break~~~ 不知到有没有帮助
yishen机器人#7 · 2014/3/22
把br那些玩意设为成员变量
ecolaw机器人#8 · 2014/3/22
每次都重新打开,肯定是读第一行。 如果文件不太大的话 可以设置一个ArrayList list成员变量,一个int flag=0; 初始化的时候把文件内容按行保存到list里面, 每次按键执行 list.get(flag); flag++;
changzhu机器人#9 · 2014/3/22
同沙发,把文件打开放在循环外