Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_File_Text - Fatal编程技术网

在java中读取和添加文本文件

在java中读取和添加文本文件,java,file,text,Java,File,Text,我正在寻找以下问题的解决方案。我正在创建一个.txt文件,然后向其中添加值。我正在运行一个循环,不希望在txt文件中重复相同的值。因此,基本上我需要一个IF语句,它读取.txt文件并检查值,然后在.txt文件中没有值的情况下将值添加到.txt文件中。下面是一些myt代码的示例 String Friends = Dave.get(friends); String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt"; FileW

我正在寻找以下问题的解决方案。我正在创建一个.txt文件,然后向其中添加值。我正在运行一个循环,不希望在txt文件中重复相同的值。因此,基本上我需要一个
IF语句
,它读取.txt文件并检查值,然后在.txt文件中没有值的情况下将值添加到.txt文件中。下面是一些myt代码的示例

String Friends = Dave.get(friends);
String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
FileWriter fw = new FileWriter(file,true);
BufferedWriter bw = new BufferedWriter(fw);
If语句用于查看Dave的朋友是否已经在.txt文件中

所以基本上我想知道如何检查.txt文件中的值

.txt文件的格式如下所示:

Jake
Mike
Fred
您可以使用split()或尝试将整个文件作为字符串读取,并检查字符串中是否存在名称(您也可以尝试循环名称并逐个检查)。如果给定的名称不存在,您可以尝试将其写入文件

只是一个示例算法

  • 以字符串形式读取完整文件
  • 检查字符串是否包含值
  • 如果该值存在,则不执行任何操作
  • 如果值不存在,请尝试使用该名称附加文件
  • 希望这有帮助:)

    您可以使用split()或尝试将整个文件作为字符串读取,并检查字符串中是否存在名称(您也可以尝试循环名称并逐个检查)。如果给定的名称不存在,您可以尝试将其写入文件

    只是一个示例算法

  • 以字符串形式读取完整文件
  • 检查字符串是否包含值
  • 如果该值存在,则不执行任何操作
  • 如果值不存在,请尝试使用该名称附加文件

  • 希望这有帮助:)

    您必须检查哪些朋友不在文本文件中,因此捕获他们并将其放入列表中:

    String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
    BufferedReader in = new BufferedReader(new FileReader(file));
    String str;
    
    List<String> friendsInFile = new ArrayList<String>();
    while((str = in.readLine()) != null){
        friendsInFile.add(str);
    }
    

    您必须检查哪些朋友不在文本文件中,因此捕获他们并将其放入列表:

    String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
    BufferedReader in = new BufferedReader(new FileReader(file));
    String str;
    
    List<String> friendsInFile = new ArrayList<String>();
    while((str = in.readLine()) != null){
        friendsInFile.add(str);
    }
    
    您可以使用没有重复项的容器。每次你读到一个名字,就把它介绍给观众。稍后将整个集合写入文本文件。不会出现重复项

    希望这对你有帮助!:)

    您可以使用没有重复项的容器。每次你读到一个名字,就把它介绍给观众。稍后将整个集合写入文本文件。不会出现重复项


    希望这对你有帮助!:)

    txt文件中朋友的格式是什么?@jordiCastilla它的格式类似于:jake(newline)fred(newline)…等等。评论不会让你写一行新词,但你得到了你看过的想法,然后呢?请注意,您无法为当前正在写入的文件打开文件读取器,因此您应该先读取该文件,关闭它,然后重新打开它进行写入。@AlexanderWeiner我已经研究过它们,但不确定如何在这个实例中使用它们。这是txt文件中的friends格式?@jordiCastilla它的格式类似于:jake(newline)弗雷德(新线)…等等。评论不会让你写一行新词,但你得到了你看过的想法,然后呢?请注意,您无法为当前正在写入的文件打开文件读取器,因此您应该先读取该文件,关闭它,然后重新打开它进行写入。@alexanderWeinert我已经研究过它们,但不确定如何在本例中使用它们“每次读取名称时,检查它是否已在集合中(包含(对象o))如果返回false,则将其引入集合。“。。。那么,如果他想在
    集合中使用该名称,为什么要先检查?他可以简单地添加它。是的,它是正确的。对不起,只需将读取的名称添加到set,然后将整个集合写入文本文件。我将编辑答案。“每次你阅读一个名称检查它是否已经在集合中(包含(对象o)),如果返回false,则将其引入集合。”。。。那么,如果他想在
    集合中使用该名称,为什么要先检查?他可以简单地添加它。是的,它是正确的。对不起,只需将读取的名称添加到set,然后将整个集合写入文本文件。我将编辑答案。很高兴听到@Grbe1l;)很高兴听到@Grbe1l;)
    
    String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
    List<String> friendsInFile = IOUtils.readLines(new FileInputStream(file));
    
    for (String friend : dave.getFriends()) {
        if (!friendsInFile.contains(friend)) {
            // add the friend to the file
        }
    }