Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中读取文本文件中添加的新行_Java - Fatal编程技术网

如何在java中读取文本文件中添加的新行

如何在java中读取文本文件中添加的新行,java,Java,我一直在尝试使用randomacess读取新行,但我无法存储上一次迭代的文件指针,并将其与最新文件的行尾进行比较,并读取差异 感谢您的帮助 try { String data =fromNode+" "+message+" "+toNode; File fileTo = new File(File.separator + "Users" + File.separator + "Apoorv" + File.separato

我一直在尝试使用randomacess读取新行,但我无法存储上一次迭代的文件指针,并将其与最新文件的行尾进行比较,并读取差异

感谢您的帮助

    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();
    }

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




}
试试看{
字符串数据=fromNode+“”+message+“”+toNode;
File fileTo=新文件(File.separator+“Users”+File.separator
+“Apoorv”+File.separator+“Desktop”+File.separator
+“文件”+File.separator+“到”+toNode+“.txt”);
File fileFrom=新文件(File.separator+“Users”+File.separator
+“Apoorv”+File.separator+“Desktop”+File.separator
+“Files”+File.separator+“from”+fromNode+“.txt”);
//如果文件不存在,则创建它
如果(!fileTo.exists()){
fileTo.createNewFile();
}
如果(!fileFrom.exists()){
fileFrom.createNewFile();
}
//true=追加文件
FileWriter FileWriter=newfilewriter(fileTo,true);
BufferedWriter BufferWriter=新的BufferedWriter(文件写入器);
写入(数据);
bufferwriter.newLine();
bufferwriter.close();
//检查节点之间是否存在链接的逻辑
对于(inti=0;i“+pairList.get(i).getY()+”--“+toNode”);
FileWriter FileWriterFrom=新的FileWriter(fileFrom,
正确的);
//System.out.println(“------>”+数据);
BufferedWriter BufferWriterFrom=新的BufferedWriter(
FileWriterFrom);
bufferWritterfrom.write(数据);
bufferWriterFrom.newLine();
bufferWriterFrom.close();
}
}
System.out.println(“文件已创建”);
//正在尝试检查行的结尾
RandomAccessFile myFile=新的RandomAccessFile(fileTo,“rw”);
//将写指针设置为文件的结尾
seek(myFile.length());
System.out.println(“***”);
//在此处写入到文件末尾
}捕获(IOE异常){
e、 printStackTrace();
}
// ******************************************************************
}
代码示例
这就解决了我每秒读一行新词的问题

我只想每隔一秒钟读一次新添加的内容。如果您能向我们展示一些您尝试过的代码,那就太好了。您可能想查看管道,我一直在尝试使用seek命令,但由于它不返回任何值,我只需要一个workaround@LorenzoBoccaccia我必须使用一些逻辑编写一个文本文件,并且每隔一秒钟检查该文件是否有新添加,如果有,则使用一些逻辑将新添加的内容复制到其他文件。
   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());
        }