[英]Java how to update String of Text file
我想更新使用Java的Scanner類創建的Text文件的內容。 文本文件的每一行包含4個字符串。 每當用戶更新值時,我想更新每行2個字符串。 我嘗試了不同的代碼,但沒有任何效果。 請幫助我更新自己的價值觀。 應該怎么解決?
import java.util.*;
import java.io.*;
import javax.swing.*;
public class File2
{
public static void main(String args[])
{
Scanner obj=new Scanner(System.in);
System.out.println("\f");
System.out.println("Enter Material");
String material=obj.next();
String color="Tendra Black";
System.out.println("Enter quantity");
String quantity=obj.next();
System.out.println("Enter roll");
String roll=obj.next();
Scanner fileIn = null;
try
{
fileIn = new Scanner (new FileInputStream("Stock.txt"));
}
catch(FileNotFoundException f)
{
JOptionPane.showMessageDialog(null,"File not found. Please specify coreect location.");
}
if(fileIn.hasNext())
{
while(fileIn.hasNext())
{
File log= new File("Stock.txt");
String details = fileIn.nextLine();
StringTokenizer tokenizer = new StringTokenizer(details,"-");
String materialAvailable=null;
String colorAvailable=null;
String quantityAvailable=null;
String rollAvailable=null;
while(tokenizer.hasMoreTokens())
{
materialAvailable=tokenizer.nextToken();
colorAvailable=tokenizer.nextToken();
quantityAvailable=tokenizer.nextToken();
rollAvailable=tokenizer.nextToken();
if((colorAvailable.equalsIgnoreCase(color)))
{
int val1Q=Integer.parseInt(quantityAvailable);
int val2Q=Integer.parseInt(quantity);
int val1R=Integer.parseInt(rollAvailable);
int val2R=Integer.parseInt(roll);
int quanF=val1Q+val2Q;
int rollF=val1R+val2R;
//quantityAvailable=Integer.toString(quanF);
//rollAvailable=Integer.toString(rollF);//file readTill
details=details.replaceAll(quantityAvailable,Integer.toString(quanF));
details=details.replaceAll(rollAvailable,Integer.toString(rollF));
}
try{
FileWriter fw = new FileWriter(log);
fw.write(details);
fw.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
}
}
您只需要打開要覆蓋的文件而不是附加文件,使用FileOutputStream並將附加值設置為false,就像這樣
try{
FileOutputStream fw = new FileOutputStream(log, false);
fw.write(details);
fw.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.