1

我正在尝试创建一个从 txt 文件中读取的程序(这是文件“5,5,5,0”中唯一的内容)。然后我想获取该信息,将其放入一个数组中,然后使用该数组填充一个数组列表。然后使用该数组列表将信息写入文件。

到目前为止,这是我的类文件中的内容:

    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]);
^

符号:方法 append(String) 位置:ArrayList 类型的可变货币

moneyFile.split给我这个错误:

error: cannot find symbol
String [] tokens = moneyFile.split(",");
^
symbol:   method split(String)
location: variable moneyFile of type File
4

2 回答 2

2

有很多方法可以将数据从 Array 复制到 ArrayList:

最简单的一个:

for (int i = 0; i < tokens.length; i++){
    money.add(tokens[i]);
}

将您的数据解析为字符串

String s = Integer.toString(tokens[i]);

要将数据写入文件:

FileOutputStream fos = new FileOutputStream(path_filename_extension);
fos.write(money);
fos.close();
于 2013-05-04T20:09:25.717 回答
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());
于 2013-05-04T20:11:10.470 回答