Java實(shí)現(xiàn)讀取csv文件的兩種方式
java讀取csv文件的兩種方式
1.CsvReader讀取
import com.csvreader.CsvReader;
/**
* CsvReader 讀取
* @param filePath
* @return
*/
public static ArrayList<String> readCsvByCsvReader(String filePath) {
ArrayList<String> strList = null;
try {
ArrayList<String[]> arrList = new ArrayList<String[]>();
strList = new ArrayList<String>();
CsvReader reader = new CsvReader(filePath, ',', Charset.forName("UTF-8"));
while (reader.readRecord()) {
// System.out.println(Arrays.asList(reader.getValues()));
arrList.add(reader.getValues()); // 按行讀取,并把每一行的數(shù)據(jù)添加到list集合
}
reader.close();
System.out.println("讀取的行數(shù):" + arrList.size());
// 如果要返回 String[] 類型的 list 集合,則直接返回 arrList
// 以下步驟是把 String[] 類型的 list 集合轉(zhuǎn)化為 String 類型的 list 集合
for (int row = 0; row < arrList.size(); row++) {
// 組裝String字符串
// 如果不知道有多少列,則可再加一個(gè)循環(huán)
String ele = arrList.get(row)[0] + "," + arrList.get(row)[1] + ","
+ arrList.get(row)[2] + "," + arrList.get(row)[3] ;
System.out.println(ele);
strList.add(ele);
}
} catch (Exception e) {
e.printStackTrace();
}
return strList;
}
CsvReader方式需要引入jar包,pom配置如下
<!--csv文件操作-->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
2.BufferedReader讀取
/**
* BufferedReader 讀取
* @param filePath
* @return
*/
public static ArrayList<String> readCsvByBufferedReader(String filePath) {
File csv = new File(filePath);
csv.setReadable(true);
csv.setWritable(true);
InputStreamReader isr = null;
BufferedReader br = null;
try {
isr = new InputStreamReader(new FileInputStream(csv), "UTF-8");
br = new BufferedReader(isr);
} catch (Exception e) {
e.printStackTrace();
}
String line = "";
ArrayList<String> records = new ArrayList<>();
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
records.add(line);
}
System.out.println("csv表格讀取行數(shù):" + records.size());
} catch (IOException e) {
e.printStackTrace();
}
return records;
}
到此這篇關(guān)于Java讀取csv文件的兩種方式的文章就介紹到這了,更多相關(guān)Java讀取csv文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot項(xiàng)目中使用Sharding-JDBC實(shí)現(xiàn)讀寫分離的詳細(xì)步驟
Sharding-JDBC是一個(gè)分布式數(shù)據(jù)庫中間件,它不僅支持?jǐn)?shù)據(jù)分片,還可以輕松實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離,本文介紹如何在Spring Boot項(xiàng)目中集成Sharding-JDBC并實(shí)現(xiàn)讀寫分離的詳細(xì)步驟,需要的朋友可以參考下2024-08-08
Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之藥店信息管理系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+SSM+JSP+layui+maven+mysql開發(fā)的藥店信息管理系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有藥店信息管理該有的所有功能,感興趣的朋友快來看看吧2022-01-01
java編程實(shí)現(xiàn)獲取服務(wù)器IP地址及MAC地址的方法
這篇文章主要介紹了java編程實(shí)現(xiàn)獲取機(jī)器IP地址及MAC地址的方法,實(shí)例分析了Java分別針對(duì)單網(wǎng)卡及多網(wǎng)卡的情況下獲取服務(wù)器IP地址與MAC地址的相關(guān)技巧,需要的朋友可以參考下2015-11-11
Java?JDBC高封裝Util類的項(xiàng)目實(shí)踐
這篇文章主要介紹了Java?JDBC高封裝Util類的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
java isInterrupted()判斷線程的實(shí)例講解
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于java isInterrupted()判斷線程的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-05-05

