如何替换txt文件中的特定文本?

时间:2014-12-12 02:20:58

标签: java oop

这是我的txt文件的样子。 管理员12345 搞笑123 循环12390

你好。我试图替换我的txt文件中的特定文本。例如,我想用我在input2中键入的其他内容替换admin的12345,这意味着我想要通过scanner替换我从txt文件中找到的String(pass)。如果我使用bufferedwritter,整个内容将重写..如何解决这个问题。我是编程新手,请大家帮忙。

    login.addActionListener(this);

public void actionPerformed(ActionEvent e) {

    String inputUser = input1.getText();
    String inputPass = input2.getText();
    File loginf = new File("oop.txt");

       try{

           if(e.getSource()==login)
           {
           Scanner read = new Scanner(new File("oop.txt"));

           boolean loginTry = true;
           while(read.hasNext())
           {
               String user = read.next();
               String pass = read.next();

           if(inputUser.equals(user) && inputPass.equals(pass)){    
                  loginTry=false;
                   break;
           }
           }

           if(!loginTry)
           {
                JOptionPane.showMessageDialog(this,"Login Successful");
           }

1 个答案:

答案 0 :(得分:0)

这是一个关于如何做你想做的事的简单例子!

//Replace a line or word in a file

import java.io.*;

public class BTest
{
 public static void main(String args[])
     {
     try
         {
         File file = new File("file.txt");
         BufferedReader reader = new BufferedReader(new FileReader(file));
         String line = "", oldtext = "";
         while((line = reader.readLine()) != null)
             {
             oldtext += line + "\r\n";
         }
         reader.close();
         // replace a word in a file
         //String newtext = oldtext.replaceAll("drink", "Love");

         //To replace a line in a file
         String newtext = oldtext.replaceAll("This is test string 20000", "blah blah blah");

         FileWriter writer = new FileWriter("file.txt");
         writer.write(newtext);writer.close();
     }
     catch (IOException ioe)
         {
         ioe.printStackTrace();
     }
 }
}

OUTPUT file.txt的 我喝Java 我睡觉了Java 这是测试字符串1 这是测试字符串20000

我之所以这样做是因为你的txt文件的方式不仅仅是一个单词,你的用户登录信息旁边还有一些ID类型。所以我会使用更改行!