读取资源文件夹android中的CSV文件

Sar*_*ari 9 android opencsv

我正在开发netbeans的Android应用程序.我正在尝试使用opencsv读取CSV文件.当我将文件放在资源文件夹中并尝试从那里读取它时,在构建说无效资源目录时出错.我应该在哪里存储csv文件,以便每次应用程序启动时都可以读取它?

小智 12

你应该把csv文件放在assets文件夹中..

InputStreamReader is = new InputStreamReader(getAssets()
                        .open("filename.csv"));

                BufferedReader reader = new BufferedReader(is);
                reader.readLine();
                String line;
                while ((line = reader.readLine()) != null) {

                    }
Run Code Online (Sandbox Code Playgroud)


Tug*_*rul 9

一些建议;

  • 创建一个对象,用于将一行数据保存到csv中.(Ex: YourSimpleObject.它可以让您轻松管理数据.)
  • 逐行读取文件并分配给对象.将对象添加到列表中.(例如:ArrayList<YourSimpleObject >)

码:

private void readAndInsert() throws UnsupportedEncodingException {


ArrayList<YourSimpleObject > objList= new ArrayList<YourSimpleObject >();
AssetManager assetManager = getAssets();
InputStream is = null;

            try {
                is = assetManager.open("questions/question_bank.csv");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            BufferedReader reader = null;
            reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));

            String line = "";
            StringTokenizer st = null;
            try {

                while ((line = reader.readLine()) != null) {
                    st = new StringTokenizer(line, ",");
                    YourSimpleObject obj= new YourSimpleObject ();
                                    //your attributes
                    obj.setX(st.nextToken());
                    obj.setY(st.nextToken());
                    obj.setZ(st.nextToken());
                    obj.setW(st.nextToken());

                    objList.add(sQuestion);

                }
            } catch (IOException e) {

                e.printStackTrace();
            }



}
Run Code Online (Sandbox Code Playgroud)