更新時間:2022-08-24 10:51:07 來源:動力節點 瀏覽2142次
在 Java 中讀取 CSV 文件有以下四種方式:
Java 的 Scanner 類提供了多種讀取 CSV 文件的方法。它提供了一個構造函數,該構造函數生成從指定 CSV 文件掃描的值。此類還以令牌的形式破壞數據。
有一個分隔符模式,默認情況下,它匹配空白。然后,使用不同類型的 next() 方法,我們可以轉換生成的標記。
使用 Scanner 類讀取 CSV 文件的代碼:
導入java。伊奧。* ; <字體>< /字體>
導入java。實用程序。掃描儀;<字體>< /字體>
公共類CSVReaderDemo {<字體>< /font >
public static void main ( String [] args )拋出異常{< font >< /font >
掃描儀 sc =新掃描儀(新文件(“C:\\Users\\Dell\\Desktop\\csvDemo.csv” ));<字體>< /字體>
//解析一個CSV文件到Scanner類的構造函數中 <font></font>
sc。使用分隔符(“,” );<字體>< /字體>
//設置逗號作為分隔符模式<font></font>
while ( sc.hasNext ( )) {<字體>< /font >
系統。出來。打印(sc.next ());<字體>< /字體>
}<字體>< /font >
sc。關閉();<字體>< /字體>
//關閉掃描儀 <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() 標識分隔符并將行拆分為標記。
這個方法的語法是:
公共字符串[]拆分(字符串正則表達式)
使用 String.split() 方法讀取 CSV 文件的代碼:
導入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 >
系統。出來。打印(tempStr + “” );<字體>< /字體>
}<字體>< /font >
系統。出來。打印();<字體>< /字體>
}<字體>< /font >
br。關閉();<字體>< /字體>
}<字體>< /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
導入java。伊奧。緩沖讀取器;<字體>< /字體>
導入java。伊奧。文件閱讀器;<字體>< /字體>
導入java。伊奧。異常;<字體>< /字體>
公共類CSV {<字體>< /font >
public static void main ( String [] args ) {< font >< /font >
字符串行 = "" ; <字體>< /字體>
字符串 splitBy = "," ; <字體>< /字體>
試試{<字體>< /font >
//將CSV文件解析成BufferedReader類構造函數<font></font>
BufferedReader br = new BufferedReader ( new FileReader ( "C:\\Users\\Dell\\Desktop\\csvDemo.csv" )) ; <字體>< /字體>
while (( line = br.readLine ()) != null )< font >< /font >
//返回一個布爾值 <font></font>
{<字體>< /font >
字符串[]員工 = 行。拆分(拆分);<字體>< /字體>
//使用逗號作為分隔符 <font></font>
系統。出來。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,聯系人= 9067215139,城市= Burmingham]
Emp[名字=Varun,姓氏=Patel,聯系人= 2503595381,城市= Sindh]
Emp[名字=Michael,姓氏=Baldwin,聯系人= 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,聯系人 = 7982264359,城市 = Hubli]
Emp[名字 = Rajeev,姓氏 = Singh,聯系人 = 3258837884,城市 = Patiala]
Emp[名字=Sujay,姓氏=Kapoor,聯系人= 5127263160,城市= Mumbai]
OpenCSV API 是第三方 API。此 API 提供標準庫來讀取各種版本的 CSV 文件。OpenCSV API 還提供了更好的控制來處理 CSV 文件。該庫還可以讀取制表符分隔文件或 TDF 文件格式。
使用 OpenCSV API 讀取 CSV 文件的代碼:
導入java。伊奧。文件閱讀器;<字體>< /字體>
進口com。打開.csv CSVReader ; <字體>< /字體>
公共類CSVReaderDemo {<字體>< /font >
public static void main ( String [] args ) {< font >< /font >
CSVReader 閱讀器 = null ; <字體>< /字體>
試試{<字體>< /font >
//將CSV文件解析成CSVReader類構造函數<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 >
系統。出來。打印(令牌);<字體>< /字體>
}<字體>< /font >
系統。出來。打印(“\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 孟買
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習