Android如何讀寫(xiě)CSV文件方法示例
前言
本文主要給大家介紹的是關(guān)于Android讀寫(xiě)CSV文件的相關(guān)內(nèi)容,CSV也就是Comma-Separated Values逗號(hào)分隔的文本文件,
讀寫(xiě)csv文件和讀寫(xiě)普通文件類似;寫(xiě)的時(shí)候給數(shù)據(jù)之間添加上逗號(hào)。
設(shè)定存儲(chǔ)路徑和文件名:
private static final String FILE_FOLDER = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "AboutView" + File.separator + "data"; private static final String FILE_CSV = "about_data.csv";
寫(xiě)CSV文件
使用FileOutputStream來(lái)向文件尾部添加數(shù)據(jù)
FileOutputStream.write(byte[] data)
向文件流寫(xiě)入字節(jié)數(shù)據(jù)。
class WriteData2CSVThread extends Thread { short[] data; String fileName; String folder; StringBuilder sb; public WriteData2CSVThread(short[] data, String folder, String fileName) { this.data = data; this.folder = folder; this.fileName = fileName; } private void createFolder() { File fileDir = new File(folder); boolean hasDir = fileDir.exists(); if (!hasDir) { fileDir.mkdirs();// 這里創(chuàng)建的是目錄 } } @Override public void run() { super.run(); createFolder(); File eFile = new File(folder + File.separator + fileName); if (!eFile.exists()) { try { boolean newFile = eFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { FileOutputStream os = new FileOutputStream(eFile, true); sb = new StringBuilder(); for (int i = 0; i < data.length; i++) { sb.append(data[i]).append(","); } sb.append("\n"); os.write(sb.toString().getBytes()); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } } }
讀CSV文件
使用BufferedReader讀取每一行內(nèi)容;讀出來(lái)的數(shù)據(jù)帶有逗號(hào)分隔符
class ReadCSVThread extends Thread { String fileName; String folder; public ReadCSVThread(String folder, String fileName) { this.folder = folder; this.fileName = fileName; } @Override public void run() { super.run(); File inFile = new File(folder + File.separator + fileName); final StringBuilder cSb = new StringBuilder(); String inString; try { BufferedReader reader = new BufferedReader(new FileReader(inFile)); while ((inString = reader.readLine()) != null) { cSb.append(inString).append("\n"); } reader.close(); } catch (Exception e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { mCSVTv.setText(cSb.toString());// 顯示 } }); } }
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- 讀寫(xiě)Android中assets目錄下的文件的方法詳解
- Android中文件讀寫(xiě)(輸入流和輸出流)操作小結(jié)
- Android手機(jī)內(nèi)存中文件的讀寫(xiě)方法小結(jié)
- Android應(yīng)用程序中讀寫(xiě)txt文本文件的基本方法講解
- Android編程之文件的讀寫(xiě)實(shí)例詳解
- Android 讀寫(xiě)文件方法匯總
- android開(kāi)發(fā)之Json文件的讀寫(xiě)的示例代碼
- android 開(kāi)發(fā) 文件讀寫(xiě)應(yīng)用案例分析
- Android讀寫(xiě)文件工具類詳解
- Android日志文件的讀寫(xiě)工具類
相關(guān)文章
Android 開(kāi)發(fā)延時(shí)調(diào)用的幾種方法
本篇文章主要介紹Android 延遲, 在Android 程序開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到程序推遲時(shí)間執(zhí)行,這里整理了幾種方法,以便Android 開(kāi)發(fā)的朋友參考2016-07-07Android自定義View實(shí)現(xiàn)地鐵顯示牌效果
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)地鐵顯示牌效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Android 4.4以上"沉浸式"狀態(tài)欄效果的實(shí)現(xiàn)方法
Android與ios效果互仿早已不是什么稀奇的事,我猜大概這個(gè)效果來(lái)自ios吧,有爭(zhēng)議說(shuō)這種效果不能叫做沉浸式,叫透明狀態(tài)欄更合適,我也感覺(jué)這和沉浸式的含義不太一致。但是大家都這么叫了,那就這樣唄。下面來(lái)一起看看關(guān)于Android 4.4以上"沉浸式"效果的實(shí)現(xiàn)方法。2016-09-09Android 7.0中拍照和圖片裁剪適配的問(wèn)題詳解
這篇文章主要介紹了Android 7.0中拍照和圖片裁剪適配的相關(guān)問(wèn)題,文中通過(guò)示例代碼介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02Android自定義View圖片按Path運(yùn)動(dòng)和旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了Android自定義View圖片按Path運(yùn)動(dòng)和旋轉(zhuǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01