开发者

how to read a csv file from sd card or specified path in android [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

reading a specific file from sdcard in android

I'm trying to make a simple android app that basically imports a csv and inserts it to my database table. So far, I was able to read a csv file inside the res folder.

my sample csv file is named "test.csv" and is basically accessed through "InputStream is = this.getResources().openRawResource(R.drawable.test);".

Here's my sample code:

InputStream is = this.getResources().openRawResource
            (R.drawable.test);
                BufferedReader reader = new BufferedReader(new InputStreamReader
            (is));
                try {
                    String line;
                    String brand = "";
                    String model = "";
                    String type = "";

                    this.dh = new DataHelper(this);
                    //this.dh.deleteAllCar();
                    while ((line = reader.readLine()) != null) {
                        // do something with "line"

                        String[] RowData = line.split(",");
                        brand = RowData[1];
                        model = RowData[2];
                        type = RowData[3];
                        this.dh = new DataHelper(this);
                        //this.dh.deleteAllCar();
           开发者_开发问答             this.dh.insertcsv(brand, model, type);
                    }
                }catch (IOException ex) {
                    // handle exception
                }finally {
                    try {
                        is.close();
                    }
                    catch (IOException e) {
                        // handle exception
                    }
                }

This works fine however, I want to be able to make a feature wherein the user can specify where to get the file(like from phone's sdcard, etc). But for now, I wanted to know how to access the csv from sdcard(mnt/sdcard/test.csv).

Help will be highly appreciated! thanks and happy coding!


Reading a file from an SDCard has been covered on Stack Overflow previously.

Here's the link:

  • reading a specific file from sdcard in android


Here is code on how to write to the SD Card, you should be able to figure out the read part using your code above:

private void writeToSDCard() {
try {
    File root = Environment.getExternalStorageDirectory();

    if (root.canWrite()){
        InputStream from = myContext.getResources().openRawResource(rID);
        File dir = new java.io.File (root, "pdf");
        dir.mkdir();
        File writeTo = new File(root, "pdf/" + attachmentName);
        FileOutputStream  to = new FileOutputStream(writeTo);

        byte[] buffer = new byte[4096];
        int bytesRead;

        while ((bytesRead = from.read(buffer)) != -1)
            to.write(buffer, 0, bytesRead); // write
        to.close();             
        from.close();
    } else {
        Log.d(TAG, "Unable to access SD card.");
    }
} catch (Exception e) {
    Log.d(TAG, "writeToSDCard: " + e.getMessage());
}
}       
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜