请大家来帮忙 有一个数据采集程序每分钟都会采集数据放进一个txt文本,每分钟的数据就是一行,最新的数据会自动添加到下一行,一天就是一个文本,也就是第二天会重新生成一个以日期命名的文本需求:写一个java程序不断读取最新的数据而不影响文件的正常更新 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 boolean running = true;BufferedInputStream reader = new BufferedInputStream(new FileInputStream( "sample.txt" ) );public void run() { while( running ) { if( reader.available() > 0 ) { System.out.print( (char)reader.read() ); } else { try { sleep( 500 ); } catch( InterruptedException ex ) { running = false; } } }} 写个定时任务,去读取文件,每次读取完成后,把读取的行数保存下来,然后下次再从上次保存的行数下一行开始读取。File logFile = new File(logFullName); try { final RandomAccessFile randomFile = new RandomAccessFile( logFile, "r"); try { //last_line是上次保存的是大行 randomFile.seek(last_line); String lineStr; String result = ""; while ((lineStr = randomFile.readLine()) != null) { } last_line = randomFile.length(); } catch (IOException e) { // TODO Auto-generated catch block } finally { try { if (randomFile != null) randomFile.close(); } catch (IOException e) { // TODO Auto-generated catch block } } } catch (Exception e) { // TODO Auto-generated catch block } 谢谢你的回答,可以完成需求,因为每分钟更新一行,所以如果能读取最新一行就完美了用 apache common ReversedLinesFileReader org.apache.commons.httpclient的问题 什么情况下需要实现多个接口 java 读取Excel时数据位数保留问题 JAVA的一个算法问题 请教如何拒绝恶意的Socket连接??? 请问谁在参加Robocode 的设计啊?大家进来说说 java与B/S的困惑 jbuilder7在使用威盛CPU的机器上无法安装的问题 有关多态性的一个小问题 谁有java tutorials或是下载地址? java菜鸟求助 Socket服务器给客户端发消息
boolean running = true;
BufferedInputStream reader = new BufferedInputStream(new FileInputStream( "sample.txt" ) );public void run() {
while( running ) {
if( reader.available() > 0 ) {
System.out.print( (char)reader.read() );
}
else {
try {
sleep( 500 );
}
catch( InterruptedException ex ) {
running = false;
}
}
}
}
try {
final RandomAccessFile randomFile = new RandomAccessFile(
logFile, "r");
try {
//last_line是上次保存的是大行
randomFile.seek(last_line);
String lineStr;
String result = "";
while ((lineStr = randomFile.readLine()) != null) {
}
last_line = randomFile.length();
} catch (IOException e) {
// TODO Auto-generated catch block
} finally {
try {
if (randomFile != null)
randomFile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
}