更新文本文件分隔符java

更新文本文件分隔符java,java,file,file-io,text-files,Java,File,File Io,Text Files,我刚刚开始学习java,我发现了一个关于如何更新文本文件的示例,但我需要一些关于如何操作它以使用分隔符更新文本文件中的元素的指导。例如,如果我希望用新地址编辑我的地址2 登录名、姓名、地址、联系人 登录名1、姓名1、地址1、联系人1 登录2、姓名2、地址2、联系人2 首先,你必须通过你的文件进行迭代,并找到所需的登录名作为一个密钥来更改相应的地址。为此,我给你一些提示,你可以自己使用谷歌或更进一步的搜索来获得最好的结果。 如需进一步协助,请回复 File f=new File("C:/U

我刚刚开始学习java,我发现了一个关于如何更新文本文件的示例,但我需要一些关于如何操作它以使用分隔符更新文本文件中的元素的指导。例如,如果我希望用新地址编辑我的地址2

登录名、姓名、地址、联系人

登录名1、姓名1、地址1、联系人1

登录2、姓名2、地址2、联系人2


首先,你必须通过你的文件进行迭代,并找到所需的登录名作为一个密钥来更改相应的地址。为此,我给你一些提示,你可以自己使用谷歌或更进一步的搜索来获得最好的结果。 如需进一步协助,请回复

    File f=new File("C:/Users/Junaid Hassan/Contacts",FINAL1);

    FileReader fr=new FileReader(f); 
    BufferedReader br=new BufferedReader(fr);
    String key;
    while((key=br.readLine())!=null)    //then you have to split the strings 

    String SPLIT[]=NAME.split(",");
            String Login=SPLIT[0];
                String Name=SPLIT[1];
                    String Address=SPLIT[2];
                        String Contact=SPLIT[3];
//then put a check that if your login will match a key
if(Login.equals(key)){
   //here do what you want change the address
}
   }    

通常,您不会修改现有的文本文件。加载它,修改文本,然后重写它。这是因为文本文件没有固定大小的记录(行,无论什么),所以任何更改通常都会涉及更改位置后插入/删除的文本量。文件系统一般不支持在文件中间插入/删除。因此,文本文件不会被修改为文件,而是在修改完成后被重写

在一个程序中,有两种基本的方法来实现这一点。您可以将文本文件加载为一个文本字符串,或者更可能是一个字符串列表,文本文件中每行一个字符串。然后可以修改这些字符串,并将其写回。这是我推荐的第一步:读取文件int a
ArrayList
中的行,然后处理该列表,然后在保存更改时将字符串写入文件

或者,您可以实际解析文本文件数据,这样您就有了带有
地址
名称
等字段的Java对象,然后您可以在程序中将该数据修改为数据,然后基本上可以从该数据创建一个新文件


如果程序中的文本文件内容和对象之间存在明确的1:1关系,例如,每一行都成为一个对象,所有数据都来自该行,然后在写入时,对象的所有数据都写入为单行,则这称为“序列化”:将对象与字节块进行转换(不必是人类可读的文本,但可以是),适合保存到文件或通过网络连接传输。但是,在这种情况下,您可能会忘记“序列化”,因为这是一个相当高级的概念,在您学习了更多Java之后,请回到这个概念。

那么,您遇到了什么错误?没有错误。但是,您能告诉我应该修改哪个部分来更新分隔文本文件吗?请参阅“我应该修改哪个部分”修改代码。太宽泛了,不能这么做,投票结束。谢谢你的指导。如果你觉得有用,你必须将answe标记为有用,谢谢。我现在正在查看arraylist。
    File f=new File("C:/Users/Junaid Hassan/Contacts",FINAL1);

    FileReader fr=new FileReader(f); 
    BufferedReader br=new BufferedReader(fr);
    String key;
    while((key=br.readLine())!=null)    //then you have to split the strings 

    String SPLIT[]=NAME.split(",");
            String Login=SPLIT[0];
                String Name=SPLIT[1];
                    String Address=SPLIT[2];
                        String Contact=SPLIT[3];
//then put a check that if your login will match a key
if(Login.equals(key)){
   //here do what you want change the address
}
   }