導航:首頁 > 編程語言 > javacsv讀寫

javacsv讀寫

發布時間:2024-11-30 02:25:56

『壹』 java讀取CSV文件

可以通過流的形式讀取到所有內容,之後在轉換成元素的形式進行實現。舉例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;

public class Test{
public static void main(String[] args) {
Hashtable<String, String[]> dict = new Hashtable<String, String[]>();
try {
BufferedReader reader = new BufferedReader(new FileReader("test.csv"));
String line = null;
while((line=reader.readLine())!=null){
String item[] = line.split(",");
String item2[] = new String[19];
System.array(item,1,item2,0,19);
dict.put(item[0],item2);
}
Enumeration e2 = dict.keys();
while (e2.hasMoreElements()) {
String key = (String) e2.nextElement();
System.out.println(key);
String[] dd = (String[])dict.get(key);
for (int i=0;i<dd.length;i++) {
System.out.print(dd[i]+"\t");
}
System.out.println();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}

『貳』 java 讀取csv文件里指定行列的值,比如讀取第三行第二列的值。

java讀取csv文件,按照指定格式:
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
/**
* 讀取CSV文件
* 所謂"CSV",是Comma Separated Value(逗號分隔值)的英文縮寫,通常都是純文本文件。
* 可以看成資料庫程序與電子表格之間一種中間通信文件,資料庫可以導出。csv格式,excel也可以導入並打開。csv文件,例子如下
* sj_mino1001.jpg,715282,4FB55FE8,
* sj_mino1002.jpg,471289,93203C5C,
* sj_mino1003.jpg,451929,C4E80467,
*
*/
public class CSVDeal{
public static void main(String[] args) {
try {
String[] stringList;
String csvFilePath = "C:\\Users\\Administrator\\Desktop\\20140227135936.csv";
String sourceFileString= "C:\\Users\\Administrator\\Desktop\\test.csv";
CsvReader reader = new CsvReader(csvFilePath); //默認是逗號分隔符,UTF-8編碼
CsvWriter writer = new CsvWriter(sourceFileString);
/*
* readRecord()判斷是否還有記錄,getValues()讀取當前記錄,然後指針下移
*/
reader.readRecord();
writer.writeRecord(reader.getValues()); //讀取表頭
/*
* 逐行讀取,以免文件太大
* 處理表頭後面的數據,這里是在第12列數據統一加前綴"V"
*/
while(reader.readRecord()){
stringList = reader.getValues();
stringList[11] = 'V' + stringList[11];
writer.writeRecord(stringList);
}
reader.close();
writer.close();
}catch(Exception ex){
System.out.println(ex);
}
}
}

『叄』 求個java讀取csv文件並輸出的程序

要使用CsvReader,CsvWriter需要下載一個javacsv.jar導入到項目中

packagetest;importcom.csvreader.CsvReader;importcom.csvreader.CsvWriter;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;publicclassreadandwrite{publicstaticvoidmain(String[]args)throwsIOException{String[]str={"省","市","區","街","路","里","幢","村","室","園","苑","巷","號"};StringinString="";StringtmpString="";FileinFile=newFile("C://in.csv");//讀取的CSV文件FileoutFile=newFile("C://outtest.csv");//輸出的CSV文try{BufferedReaderreader=newBufferedReader(newFileReader(inFile));BufferedWriterwriter=newBufferedWriter(newFileWriter(outFile));CsvReadercreader=newCsvReader(reader,',');CsvWritercwriter=newCsvWriter(writer,',');while(creader.readRecord()){inString=creader.getRawRecord();//讀取一行數據for(inti=0;i<str.length;i++){tmpString=inString.replace(str[i],","+str[i]+",");inString=tmpString;}//第一個參數表示要寫入的字元串數組,每一個元素佔一個單元格,第二個參數為true時表示寫完數據後自動換行cwriter.writeRecord(inString.split(","),true);//注意,此時再用cwriter.write(inString)方法寫入數據將會看到只往第一個單元格寫入了數據,「,」沒起到調到下一個單元格的作用//如果用cwriter.write(Stringstr)方法來寫數據,則要用cwriter.endRecord()方法來實現換行//cwriter.endRecord();//換行cwriter.flush();//刷新數據}creader.close();cwriter.close();}catch(FileNotFoundExceptionex){ex.printStackTrace();}}}

『肆』 使用OpenCSV在Java中讀寫CSV

本系列文章最後一部分,專門探討在Java中使用OpenCSV進行CSV文件讀寫。OpenCSV憑借其簡潔易懂的特性,以及與Apache Commons CSV相媲美的性能和功能,成為CSV解析領域的有力選擇。

OpenCSV以Apache 2.0許可證發布,用戶可在下載後評估其源代碼、Java文檔和豐富的JUnit測試套件。該庫的便捷性在於其集成於MVNRepository,簡化了依賴關系管理。CSVReader的靈活性體現在一次讀取一個記錄、多個記錄列表或作為迭代器,適應不同讀取數據需求。

雖然OpenCSV在預定義格式上不如Apache Commons CSV豐富,但它依賴兩個解析器提供基礎功能,支持讀取、寫入和將Bean直接映射至CSV,甚至能利用標題行實現CSV到Java Map的高效轉換。

對於讀取CSV,OpenCSV通過CSVReader實現,與Apache Commons CSV的CSVParser相當,支持簡單與復雜解析策略。CSV文件遍歷時,每條記錄為一個字元串數組,包含多個單獨欄位。若CSV使用非逗號分隔符,可通過兩參數構造函數自定義分隔符。

映射CSV記錄至Java對象時,OpenCSV提供兩種方法:基於標題的註解@CSVBindByName或基於位置的註解@CSVBindByPosition。對於標題一致的文件,@CSVBindByName註解可自動處理解析數據映射和類型轉換,簡化流程。當標題與變數名不一致時,可使用註解指定映射標志,以適應特定數據集的結構。若文件無標題,@CSVBindByPosition註解則提供按列位置映射的解決方案。

寫入CSV時,OpenCSV提供更多選項,允許從字元串數組或對象列表生成CSV文件。從對象列表寫入前需初始化和聲明對象。使用字元串數組生成CSV文件時,可通過CSVWriter構造函數指定分隔符,或利用FileWriter或Writer生成文件。通過構造函數參數自定義文件格式、欄位和字元常量,實現數據輸出的靈活性。未明確指定的參數將使用默認值。

綜上所述,OpenCSV憑借其簡潔的設計、廣泛的適用場景和豐富的功能,成為處理CSV文件的理想選擇,無論是讀取還是寫入,都能提供高效、靈活的解決方案。

閱讀全文

與javacsv讀寫相關的資料

熱點內容
c條件編譯是什麼 瀏覽:344
java文件轉pdf 瀏覽:757
python獲取字元串的二進制 瀏覽:506
碳酸銀的分解壓力是多少 瀏覽:112
高級語言都是編譯程序嗎 瀏覽:70
考研c語言常見演算法 瀏覽:751
怎麼進入tty1命令行 瀏覽:971
識貨app買衣服為什麼跳轉淘寶 瀏覽:613
手機dns加密打開好還是關閉好 瀏覽:425
手機如何安裝googleplay伺服器 瀏覽:644
程序員面試寶典epub 瀏覽:283
python百套源碼案例下載 瀏覽:969
psd源碼分享 瀏覽:997
xp系統定時關機命令 瀏覽:739
文件夾更名為另一個文件夾的操作 瀏覽:984
往復式壓縮機氣閥工作原理 瀏覽:916
50萬人用什麼伺服器好 瀏覽:796
如何用命令方塊提醒全部人 瀏覽:228
電腦nc命令 瀏覽:397
葯典app哪個好 瀏覽:40