2011-08-28 33 views
2

我试图打印出附加在日志文件末尾的任何更改,类似于尾部日志。但是当用printwriter打印出来时,它也会打印出新的一行。 除了打印使用printwriter时删除新行

test1 
test2 

它打印:

test1 

test2 

代码如下所示。我尝试用pwriter.print(行)而不是println,但没有打印。有什么办法可以取消回车。

public class Lognow implements Runnable{ 
boolean execute = true; 

InputStreamReader inputStreamReader; 
BufferedReader bufferedReader; 
PrintWriter pwriter; 

public Lognow(){ 
PrintWriter pw = new PrintWriter(System.out, true); 
try { 

    inputStreamReader = new InputStreamReader(new FileInputStream ("D:/app/logi.txt")); 
    bufferedReader = new BufferedReader (inputStreamReader); 
    String line = bufferedReader.readLine(); 
    while(line!=null){   
     line = bufferedReader.readLine(); 
    } 

    pwriter = pw; 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
} 

public void run() { 
    while(execute) { 
     try { 
      String str=""; 
      String line = bufferedReader.readLine(); 

      if(line!=null) { 

       pwriter.println(line); 

      } 
      else { 
       try { 
        Thread.sleep(500); 
       } 
       catch(InterruptedException ex) 
       { 
        execute = false; 
       } 
      } 


     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

public static void main(String[] args){ 
    Lognow lognow = new Lognow(); 
    lognow.run(); 
} 

回答

4

请勿使用println()。改为使用print(),使用flush()

+0

如果我要在新行上打印行而在中间没有多余的空行,我该怎么做。使用println会在中间留下一个空行间隔。 –

+0

@joey他刚刚告诉过你不要那么做,而应该怎么做。 – EJP