如何用数组中的信息填充arraylist(java)

如何用数组中的信息填充arraylist(java),java,Java,我正在尝试创建一个从txt文件读取的程序(这是文件“5,5,5,0”中唯一的内容)。然后我想获取这些信息,将其放入一个数组中,然后使用该数组填充一个数组列表。然后使用该arraylist将信息写入文件 以下是我到目前为止在班级档案中的内容: import java.io.*; import java.util.Scanner; import java.util.ArrayList; public void setMoney() throws IOExceptio

我正在尝试创建一个从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();
}
符号:方法附加(字符串) 位置:ArrayList类型的可变货币

moneyFile.split
给了我以下错误:

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

有许多方法可以将数据从阵列复制到ArrayList:

最简单的一个:

for (int i = 0; i < tokens.length; i++){
    money.add(tokens[i]);
}
要将数据写入文件,请执行以下操作:

FileOutputStream fos = new FileOutputStream(path_filename_extension);
fos.write(money);
fos.close();

有许多方法可以将数据从阵列复制到ArrayList:

最简单的一个:

for (int i = 0; i < tokens.length; i++){
    money.add(tokens[i]);
}
要将数据写入文件,请执行以下操作:

FileOutputStream fos = new FileOutputStream(path_filename_extension);
fos.write(money);
fos.close();

您必须使用
FileInputStream
而不是
File
。另外,使用您创建的
扫描仪
对象获取
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());
FileInputStream moneyFile=newfileinputstream(“path/money.txt”);
扫描器moneyScan=新扫描器(moneyFile);
moneyScan.useDelimiter(“,”);
ArrayList money=新ArrayList();
while(moneyScan.hasNextInt())
money.add(moneyScan.nextInt());

您必须使用
文件输入流
而不是
文件
。另外,使用您创建的
扫描仪
对象获取
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());
FileInputStream moneyFile=newfileinputstream(“path/money.txt”);
扫描器moneyScan=新扫描器(moneyFile);
moneyScan.useDelimiter(“,”);
ArrayList money=新ArrayList();
while(moneyScan.hasNextInt())
money.add(moneyScan.nextInt());


您似乎已经回答了自己的问题,只是您必须解析
字符串
,将其转换为
int
值。你还有别的问题吗?我同意你的看法Peter@TyGivens
数组。asList
。。。看起来您已经回答了自己的问题,只是您必须解析
字符串
,将其转换为
int
值。你还有别的问题吗?我同意你的看法Peter@TyGivens
数组。asList
。。。我想你可能误解了这个问题。目标不是将
int
转换为字符串,也不是将数据写入文件。OP的代码已经从数组中构造了一个
ArrayList
。这就是为什么你投票否决了我!!?也许我误解了这个问题,但我认为我离要求不远,我知道我想帮助他。最后,感谢您的否决票@VulcanI将此添加到我的文件中,但现在我得到了一个非法的类型开头错误。@TyGivens,到底是哪条语句导致了您的错误?我想您可能误读了这个问题。目标不是将
int
转换为字符串,也不是将数据写入文件。OP的代码已经从数组中构造了一个
ArrayList
。这就是为什么你投票否决了我!!?也许我误解了这个问题,但我认为我离要求不远,我知道我想帮助他。最后,感谢您的反对票@VulcanI将此添加到我的文件中,但现在我得到了一个非法的类型开头错误。@TyGivens,到底是哪条语句给出了错误?
FileInputStream
是不必要的;扫描仪可以很好地读取文件。然而,其余部分是正确的。@jedyobidan我假设OP使用的是标准ASCII字符集(正如他所说的,他的文件中只有数字和逗号)。如果不是ASCII格式,我想FileInputStream可以工作,尽管在构造函数中指定字符集也可以。
FileInputStream
是不必要的;扫描仪可以很好地读取文件。然而,其余部分是正确的。@jedyobidan我假设OP使用的是标准ASCII字符集(正如他所说的,他的文件中只有数字和逗号)。如果不是ASCII格式,我想FileInputStream可以工作,尽管在构造函数中指定字符集也可以