Java将Jtextfiields中的文本文件内容修改为输入
目前我被困在修改部分。我有一个“booklist.txt”: aaa bbb ccc ddd QQwww.eerrrJava将Jtextfiields中的文本文件内容修改为输入,java,swing,Java,Swing,目前我被困在修改部分。我有一个“booklist.txt”: aaa bbb ccc ddd QQwww.eerrr String q=oldID.getText(); String w=newID.getText(); String a=Author.getText(); String r=title.getText(); String t=quantity.getText(); try{ File f= new File
String q=oldID.getText();
String w=newID.getText();
String a=Author.getText();
String r=title.getText();
String t=quantity.getText();
try{
File f= new File("BookList.txt");
FileReader fr=new FileReader(f);
BufferedReader br=new BufferedReader(fr);
FileWriter fw=new FileWriter(f);
String line=br.readLine();
String oldtext="";
String newtext="";
String[] tem=new String[4];
while(line!=null)
{
oldtext +=line+System.getProperty("line Seperator");
tem=line.split("-");
if(tem[0].equals(q)){
newtext = oldtext.replaceAll(line,w+"-"+e+"-"+r+"-"+t);
}
}
fw.write(newtext);
fw.close();
br.close();
}catch(IOException Ex){Ex.printStackTrace();}
我想要的是从Jtexfields获取输入并替换文本文件中的字符串
例如:
如果我键入的id是qqq(tem[0]),则while循环将读取文本文件中的所有行。如果找到我键入的qqq,请修改其他字符串,即www、eee和rrr。替换这些字符串的输入来自Jtextfields(字符串q、w、e、r、t)以便使用FileWriter写入文件 这是你应该做的
FileWriter writer=new FileWriter(path);
writer.writeln(newText);
writer.flush();
writer.close();
这将创建一个文件,即使文件路径不存在。
请注意,这将删除文件中的所有内容,内容将被替换。但是,如果不想替换内容,请向FileWriter对象添加如下参数
new FileWriter(path,true);
这将使用您要添加的新内容附加当前内容
更新
我不知道你需要什么
首先,你必须阅读整个文件
第二步需要将整行放入ArrayList,因为ArrayList是动态数组
最后做个比较
Scanner scanner=new Scanner(new File(path));
ArrayList<String>list=new ArrayList<String>();
while(scanner.hasNextLine()){list.add(scanner.nextLine())}
您在哪里定义jtextfield?谢谢您的建议,但我的问题是,我在jtextfield中键入的旧ID是否与文本文件中的ID匹配,那么如何修改我从Jtextfields获取的作为输入的行..那么你想比较两个字符串吗?是的,我想比较两个字符串,这是我键入的id和文本文件中的id。如果两个id匹配,则修改属于该行的字符串
if(list.contains("QQQ"))
{
list.replace("QQ",myNewText)>0
}else list.add(myNewText);