2015-12-14 29 views
-1

我一直在試圖用randomacess讀取新線,但我沒能獲得存儲上一次迭代的文件指針,並將其與年底比較新的一行或多行最新文件的一行,並閱讀其中的差異。如何讀取文本文件中添加Java中

任何幫助表示讚賞。

try { 
     String data =fromNode+" "+message+" "+toNode; 

     File fileTo = new File(File.separator + "Users" + File.separator 
       + "Apoorv" + File.separator + "Desktop" + File.separator 
       + "Files" + File.separator + "to" + toNode + ".txt"); 
     File fileFrom = new File(File.separator + "Users" + File.separator 
       + "Apoorv" + File.separator + "Desktop" + File.separator 
       + "Files" + File.separator + "from" + fromNode + ".txt"); 

     // if file does not exists, then create it 
     if (!fileTo.exists()) { 
      fileTo.createNewFile(); 
     } 

     if (!fileFrom.exists()) { 
      fileFrom.createNewFile(); 
     } 

     // true = append file 
     FileWriter fileWritter = new FileWriter(fileTo, true); 
     BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
     bufferWritter.write(data); 
     bufferWritter.newLine(); 
     bufferWritter.close(); 


     //logic to check whether there exist a link between the nodes 
     for (int i=0;i< pairUniList.size() - 1; i++){ 
     if(pairUniList.get(i).getX()==fromNode && pairUniList.get(i).getY()==toNode){ 
      //System.out.println("values: "+ pairList.get(i).getX()+"---"+fromNode+"---->"+pairList.get(i).getY()+"---"+toNode); 
     FileWriter fileWritterfrom = new FileWriter(fileFrom, 
       true); 
     // System.out.println("------>"+data); 
     BufferedWriter bufferWritterfrom = new BufferedWriter(
       fileWritterfrom); 
     bufferWritterfrom.write(data); 
     bufferWritterfrom.newLine(); 
     bufferWritterfrom.close(); 

     } 
     } 
     System.out.println("Files have been created"); 

     //trying to check for the end of line 

     RandomAccessFile myFile = new RandomAccessFile(fileTo,"rw"); 

     // Set write pointer to the end of the file 
     myFile.seek(myFile.length()); 
     System.out.println("***"); 

     // Write to end of file here 

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

    // ****************************************************************** 




} 

的代碼

+0

我只是想讀新增加的每一秒。 – MikasaAckerman

+0

如果您可以向我們展示您嘗試過的一些代碼,那將會很好。 –

+0

你可能想看看管道http://tutorials.jenkov.com/java-nio/pipe.html –

回答

1
try { 

      FileInputStream fstream = new FileInputStream(
        File.separator + "Users" + File.separator + "Desktop" + File.separator 
       + "Files" + File.separator + "from" + fromNode + ".txt"); 

      @SuppressWarnings("resource") 
      BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); 
      String line; 

      while (true) { 

       line = br.readLine(); 
       if (line == null) { 
        Thread.sleep(1000); 
       } else { 
        System.out.println(line); 
       } 

      } 

     } catch (Exception e) { 
      System.err.println("Error: " + e.getMessage()); 
     } 

樣品這解決了我的閱讀新生產線的每第二個問題。