修改txt文件的一行 - Java

时间:2017-04-17 18:10:03

标签: java netbeans io

在我的文本文件中,我有客户详细信息,例如公司名称,公司地址等。我的文件内容是意大利语,所以ragione sociale是公司名称,indirizzo是地址等。

文本文件内容:

ID:1
ragione sociale:Telecom Italia S.p.A.
indirizzo:Via Gaetano Negri, n. 1
comune:Milano
cap:20123
provincia:MI
nazione:italia
partita iva:00488410010
codice fiscale:00488410010
telefono:119
---------------------------------
ID:2
ragione sociale:Wind Tre Spa
indirizzo:Casella Postale 14155
comune:Milano
cap:20152
provincia:MI
nazione:Italia
partita iva:13378520152
codice fiscale:13378520152
telefono:155
---------------------------------

当用户编辑例如ID:2's详细信息时,我想在同一文本文件中打印已编辑的信息并获取此信息:

ID:1
ragione sociale:Telecom Italia S.p.A.
indirizzo:Via Gaetano Negri, n. 1
comune:Milano
cap:20123
provincia:MI
nazione:italia
partita iva:00488410010
codice fiscale:00488410010
telefono:119
---------------------------------
ID:2
ragione sociale: new Company name
indirizzo: new address
comune:Milano
cap:20152
provincia:MI
nazione:Italia
partita iva:13378520152
codice fiscale:13378520152
telefono:155
---------------------------------

使用我在此问题底部的代码,新文本文件是:

ID:1
ragione
sociale:Telecom
Italia
S.p.A.
indirizzo:Via
Gaetano
Negri,
n.
1
comune:Milano
cap:20123
provincia:MI
nazione:italia
partita
iva:00488410010
codice
fiscale:00488410010
telefono:119
---------------------------------
ID:2
ragione sociale:company name
sociale:Wind
Tre
Spa
indirizzo:Casella
Postale
14155
comune:Milano
cap:20152
provincia:MI
nazione:Italia
partita
iva:13378520152
codice
fiscale:13378520152
telefono:155
---------------------------------

但是当我将我的文本文件放入ArrayList时,它会将每个空格视为列表中的新元素,例如公司名称:

list[0] company
list[1] name

但我想:

list[0] company name

有人可以帮助我吗?

我的Java代码:

Scanner s = new Scanner(new File("customers.txt"));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()) list.add(s.next());
s.close();

for (int i = 0; i < list.size(); i++) {
    if (list.get(i).equals("ID:2")) {
        //list.remove(i+1);
        list.set(i+1, "ragione sociale:company name");
        break;
    }  
}

for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i)); 
}

FileWriter w=new FileWriter("output.txt");
BufferedWriter b=new BufferedWriter(w);
PrintWriter printer= new PrintWriter(b);

for (int i = 0; i < list.size(); i++) {
    printer.println(list.get(i));
}
printer.close();

0 个答案:

没有答案