所以我有一个数组的以下读写文件程序。对于ArrayList,以下内容如何?我的语法有问题。我知道一个ArrayList就是这样的:private ArrayList prod list = new ArrayList(); BUt如何读/写IO语法?谢谢。
static ActionProduct[] prodlist = new ActionProduct[50];
static String filename = System.getProperty("user.dir") + "\\src\\product.txt";
static int pIndex=0;
public static void readFile() throws IOException {
// input file must be supplied in the first argument
InputStream istream;
if (filename.length() > 0) {
File inputFile = new File(filename);
istream = new FileInputStream(inputFile);
} else {
// if no filename, use standard input stream
istream = System.in;
}
// use a buffered reader for line-at-a-time
// reading
BufferedReader lineReader;
lineReader = new BufferedReader(new InputStreamReader(istream));
// read one line at a time
String line;
while ((line = lineReader.readLine()) != null) {
StringTokenizer tokens = new StringTokenizer(line, "\t");
// String tmp = tokens.nextToken();
// System.out.println("token " + tmp);
prodlist[pIndex] = new ActionProduct();
String category = prodlist[pIndex].getCategory();
category = tokens.nextToken();
System.out.println("got category " +category);
int item = prodlist[pIndex].getItem();
item = Integer.parseInt(tokens.nextToken());
String name = prodlist[pIndex].getName();
System.out.println("got name " +name);
double price = prodlist[pIndex].getPrice();
price = Double.parseDouble(tokens.nextToken());
int units = prodlist[pIndex].getUnits();
units = Integer.parseInt(tokens.nextToken());
pIndex++;
}
}
答案 0 :(得分:2)
替换它:
static ActionProduct[] prodlist = new ActionProduct[50];
与
static List<ActionProduct> prodlist = new ArrayList<ActionProduct>();
然后这个:
prodlist[pIndex] = new ActionProduct();
与
ActionProduct p = new ActionProduct();
prodlist.add(p);
最后,将prodlist[pIndex]
的所有用途替换为p
,然后在其他地方删除pIndex
。