我正在尝试创建一个从txt文件中读取的程序(这是文件“5,5,5,0”中唯一的内容)。然后我想获取该信息,将其放入数组中,然后使用该数组填充数组列表。然后使用该arraylist将信息写入文件。
以下是我目前在班级文件中的内容:
import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;
public void setMoney() throws IOException {
File moneyFile = new File ("Money.txt");
Scanner moneyScan = new Scanner(moneyFile);
String [] tokens = moneyFile.split(",");
ArrayList<Integer> money = new ArrayList<Integer>(Arrays.asList(tokens));
for(int i=0;i<tokens.length;i++){
money.append(tokens[i]);
}
String s = Integer.toString(tokens[i]);
FileOutputStream fos = new FileOutputStream("Money.txt");
fos.write(money);
fos.close();
}
Money.append
给了我这个错误:
error: cannot find symbol
money.append(tokens[i]);
^
symbol:方法追加(String) location:ArrayList类型的可变货币
moneyFile.split
给了我这个错误:
error: cannot find symbol
String [] tokens = moneyFile.split(",");
^
symbol: method split(String)
location: variable moneyFile of type File
答案 0 :(得分:2)
有很多方法可以将数据从Array复制到ArrayList:
最简单的一个:
for (int i = 0; i < tokens.length; i++){
money.add(tokens[i]);
}
将数据解析为String
String s = Integer.toString(tokens[i]);
将数据写入文件:
FileOutputStream fos = new FileOutputStream(path_filename_extension);
fos.write(money);
fos.close();
答案 1 :(得分:2)
您必须使用FileInputStream
代替File
。另外,使用您创建的Scanner
对象来获取int
值:
FileInputStream moneyFile = new FileInputStream("path/money.txt");
Scanner moneyScan = new Scanner(moneyFile);
moneyScan.useDelimiter(",");
ArrayList<Integer> money = new ArrayList<Integer>();
while(moneyScan.hasNextInt())
money.add(moneyScan.nextInt());