更新時(shí)間:2022-08-24 10:51:07 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2240次
在 Java 中讀取 CSV 文件有以下四種方式:
Java 的 Scanner 類提供了多種讀取 CSV 文件的方法。它提供了一個(gè)構(gòu)造函數(shù),該構(gòu)造函數(shù)生成從指定 CSV 文件掃描的值。此類還以令牌的形式破壞數(shù)據(jù)。
有一個(gè)分隔符模式,默認(rèn)情況下,它匹配空白。然后,使用不同類型的 next() 方法,我們可以轉(zhuǎn)換生成的標(biāo)記。
使用 Scanner 類讀取 CSV 文件的代碼:
導(dǎo)入java。伊奧。* ; <字體>< /字體>
導(dǎo)入java。實(shí)用程序。掃描儀;<字體>< /字體>
公共類CSVReaderDemo {<字體>< /font >
public static void main ( String [] args )拋出異常{< font >< /font >
掃描儀 sc =新掃描儀(新文件(“C:\\Users\\Dell\\Desktop\\csvDemo.csv” ));<字體>< /字體>
//解析一個(gè)CSV文件到Scanner類的構(gòu)造函數(shù)中 <font></font>
sc。使用分隔符(“,” );<字體>< /字體>
//設(shè)置逗號(hào)作為分隔符模式<font></font>
while ( sc.hasNext ( )) {<字體>< /font >
系統(tǒng)。出來。打?。╯c.next ());<字體>< /字體>
}<字體>< /font >
sc。關(guān)閉();<字體>< /字體>
//關(guān)閉掃描儀 <font></font>
}<字體>< /font >
}
輸出:
Raju, Dixit 先生, 3603286012, Burdwan
, Joseph, Patil
先生, 4645968519, Hoogly, Andrew, Mukherjee 先生, 9067215139, Burmingham
, Varun, Patel 先生, 2503595381, Sindh
, Michael, Baldwin 先生, 7631068844, Kentucky
Emmanuel, Agarwal 先生, 3538037535, Nice
, Sumeet, Patil 先生, 6871075256, Aukland
, Pranab, Kulkarni 先生, 7982264359, Hubli
, Rajeev, Singh 先生, 3258837884, Patiala
, Sujay, Kapoor 先生, 5127263160, Mumbai
Java 的 String.split() 標(biāo)識(shí)分隔符并將行拆分為標(biāo)記。
這個(gè)方法的語法是:
公共字符串[]拆分(字符串正則表達(dá)式)
使用 String.split() 方法讀取 CSV 文件的代碼:
導(dǎo)入java。伊奧。* ; <字體>< /字體>
公共類CSVReader {<字體>< /font >
public static final String delimiter = "," ; <字體>< /字體>
public static void read ( String csvFile ) {< font >< /font >
試試{<字體>< /font >
文件文件=新文件(csvFile );<字體>< /字體>
FileReader fr = new FileReader (文件);<字體>< /字體>
BufferedReader br = new BufferedReader ( fr ) ; <字體>< /字體>
字符串行 = " " ; <字體>< /字體>
字符串[] tempArr; <字體>< /字體>
while (( line = br.readLine ()) != null ) {< font >< /font >
tempArr = 線。拆分(分隔符);<字體>< /字體>
for ( String tempStr: tempArr ) {<字體>< /font >
系統(tǒng)。出來。打印(tempStr + “” );<字體>< /字體>
}<字體>< /font >
系統(tǒng)。出來。打印();<字體>< /字體>
}<字體>< /font >
br。關(guān)閉();<字體>< /字體>
}<字體>< /font >
catch ( IOException ioe ) {<字體>< /font >
愛荷華州。打印堆棧跟蹤();<字體>< /字體>
}<字體>< /font >
}<字體>< /font >
public static void main ( String [] args ) {< font >< /font >
//要讀取的csv文件<font></font>
字符串 csvFile = "C:\\Users\\Dell\\Desktop\\csvDemo.csv" ; <字體>< /字體>
CSV 閱讀器。讀取(csvFile );<字體>< /字體>
}<字體>< /font >
}
輸出:
Raju, Dixit 先生, 3603286012, Burdwan
, Joseph, Patil
先生, 4645968519, Hoogly, Andrew, Mukherjee 先生, 9067215139, Burmingham
, Varun, Patel 先生, 2503595381, Sindh
, Michael, Baldwin 先生, 7631068844, Kentucky
Emmanuel, Agarwal 先生, 3538037535, Nice
, Sumeet, Patil 先生, 6871075256, Aukland
, Pranab, Kulkarni 先生, 7982264359, Hubli
, Rajeev, Singh 先生, 3258837884, Patiala
, Sujay, Kapoor 先生, 5127263160, Mumbai
導(dǎo)入java。伊奧。緩沖讀取器;<字體>< /字體>
導(dǎo)入java。伊奧。文件閱讀器;<字體>< /字體>
導(dǎo)入java。伊奧。異常;<字體>< /字體>
公共類CSV {<字體>< /font >
public static void main ( String [] args ) {< font >< /font >
字符串行 = "" ; <字體>< /字體>
字符串 splitBy = "," ; <字體>< /字體>
試試{<字體>< /font >
//將CSV文件解析成BufferedReader類構(gòu)造函數(shù)<font></font>
BufferedReader br = new BufferedReader ( new FileReader ( "C:\\Users\\Dell\\Desktop\\csvDemo.csv" )) ; <字體>< /字體>
while (( line = br.readLine ()) != null )< font >< /font >
//返回一個(gè)布爾值 <font></font>
{<字體>< /font >
字符串[]員工 = 行。拆分(拆分);<字體>< /字體>
//使用逗號(hào)作為分隔符 <font></font>
系統(tǒng)。出來。println ( "Emp[First Name=" +employee [ 1 ] + ",LastName=" +employee [ 2 ] + ",Contact=" +employee [ 3 ] + ",City=" +employee [ 4 ] + " ]" ) ; <字體>< /字體>
}<字體>< /font >
}<字體>< /font >
catch ( IOException e ) {<字體>< /font >
e. 打印堆棧跟蹤();<字體>< /字體>
}<字體>< /font >
}<字體>< /font >
}
輸出:
Emp[First Name= Raju, Last Name= Dixit, Contact= 3603286012, City= Burdwan]
Emp[First Name=Joseph, Last Name=Patil, Contact= 4645968519, City= Hoogly]
Emp[First Name=Andrew, Last Name= Mukherjee,聯(lián)系人= 9067215139,城市= Burmingham]
Emp[名字=Varun,姓氏=Patel,聯(lián)系人= 2503595381,城市= Sindh]
Emp[名字=Michael,姓氏=Baldwin,聯(lián)系人= 7631068844,城市= Kentucky]
Emp[First Name=Emmanuel, Last Name=Agarwal, Contact= 3538037535, City= Nice]
Emp[First Name=Sumeet, Last Name=Patil, Contact= 6871075256, City= Aukland]
Emp[First Name=Pranab, Last Name= Kulkarni,聯(lián)系人 = 7982264359,城市 = Hubli]
Emp[名字 = Rajeev,姓氏 = Singh,聯(lián)系人 = 3258837884,城市 = Patiala]
Emp[名字=Sujay,姓氏=Kapoor,聯(lián)系人= 5127263160,城市= Mumbai]
OpenCSV API 是第三方 API。此 API 提供標(biāo)準(zhǔn)庫來讀取各種版本的 CSV 文件。OpenCSV API 還提供了更好的控制來處理 CSV 文件。該庫還可以讀取制表符分隔文件或 TDF 文件格式。
使用 OpenCSV API 讀取 CSV 文件的代碼:
導(dǎo)入java。伊奧。文件閱讀器;<字體>< /字體>
進(jìn)口com。打開.csv CSVReader ; <字體>< /字體>
公共類CSVReaderDemo {<字體>< /font >
public static void main ( String [] args ) {< font >< /font >
CSVReader 閱讀器 = null ; <字體>< /字體>
試試{<字體>< /font >
//將CSV文件解析成CSVReader類構(gòu)造函數(shù)<font></font>
reader = new CSVReader ( new FileReader ( "C:\\Users\Dell\Desktop\csvDemo.csv" )) ; <字體>< /字體>
字符串[]下一行;<字體>< /字體>
//一次讀取一行 <font></font>
while (( nextLine = reader.readNext ()) != null ) {< font >< /font >
for ( String token: nextLine ) {<字體>< /font >
系統(tǒng)。出來。打?。钆疲?lt;字體>< /字體>
}<字體>< /font >
系統(tǒng)。出來。打?。ā癨n” );<字體>< /字體>
}<字體>< /font >
}<字體>< /font >
捕獲(異常 e ){<字體>< /font >
e. 打印堆棧跟蹤();<字體>< /字體>
}<字體>< /font >
}<字體>< /font >
}
輸出:
Mr. Raju Dixit 36??03286012 Burdwan
Mr. Joseph Patil 4645968519 Hoogly
Mr. Andrew Mukherjee 9067215139 Burmingham
Mr. Varun Patel 2503595381 Sindh
Mr. Michael Baldwin 7631068844 Kentucky
Mr. Emmanuel Agarwal 3538037535 Nice
Mr. Sumeet Patil 6871075256 Aukland
Mr. Pranab Kulkarni 7982264359 Hubli
Mr. Rajeev Singh 3258837884 Patiala
Sujay Kapoor 先生 5127263160 孟買
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)