这是我的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");
}
答案 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类型。所以我会使用更改行!