Android 自己的csv读卡器将数组串出内存

Android 自己的csv读卡器将数组串出内存,android,csv,arrays,Android,Csv,Arrays,因为我只阅读一个非常简单的csv,其中只有字符串是逗号分隔的,应该转换为字符串[] 我认为这是如此简单的一个外部罐子将有点多,我可以处理这非常容易。但是发生的事情是,第一项被添加,直到内存已满并崩溃 公共列表readWinkels(活动a){ List winkelList=new ArrayList() 试试看{ InputStream winkelcsv=a.getResources().getAssets().open(“winkels.csv”); BufferedReader br=新

因为我只阅读一个非常简单的csv,其中只有字符串是逗号分隔的,应该转换为字符串[]

我认为这是如此简单的一个外部罐子将有点多,我可以处理这非常容易。但是发生的事情是,第一项被添加,直到内存已满并崩溃

公共列表readWinkels(活动a){ List winkelList=new ArrayList()

试试看{
InputStream winkelcsv=a.getResources().getAssets().open(“winkels.csv”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(winkelcsv,“UTF-8”);
字符串s=br.readLine();
while(s!=null){
温克尔列表。添加(s);
System.out.println(s.toString());
}
br.close();

对于(int i=0;i,这里有一个标准习惯用法,用于在应用于代码的文件行上使用
while
循环进行迭代:

String s;
while ((s = br.readLine()) != null){
    winkelList.add(s);
    System.out.println(s.toString());
}
您需要在循环的每次迭代中调用
readLine()
。原始代码只不过是一个无限循环,因为
s
只读取一次。假设
s
不是
null
,循环条件决不会为false,因此列表将不受限制地增长,直到所有可用内存都被使用为止

String s;
while ((s = br.readLine()) != null){
    winkelList.add(s);
    System.out.println(s.toString());
}