javacsv操作實例(java操作csv文件)

本文目錄一覽:

JAVA導入txt、CSV的例子

導入文件若為二進制格式的csv或xls文件需要用jxl.jar包來解析,若文件為文本格式逗號分隔的csv文件則需要用opencsv.jar包來解析。下面為導入兩種格式文件的代碼示例:1. 導入文本格式逗號分隔的csv文件Java代碼 import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVReader; Java代碼 public void importCsvFile() { CSVReader csvReader = null; try { csvReader = new CSVReader(new FileReader(importFile),’,’);//importFile為要導入的文本格式逗號分隔的csv文件,提供getXX/setXX方法 if(csvReader != null){ //first row is title, so past csvReader.readNext(); String[] csvRow = null;//row while ((csvRow = csvReader.readNext()) != null){ for (int i =0; icsvRow.length; i++){ String temp = csvRow[i]; switch (i) { case 0: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanName(temp); } break; case 1: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanEmail(temp); } break; default: break; } } //保存linkman到數據庫 if(linkman.getLinkmanName() != null linkman.getLinkmanEmail() != null){ EmailLinkmanAPI.insertLinkman(linkman); } } } } catch (Exception e) { e.printStackTrace(); } } public void importCsvFile() { CSVReader csvReader = null; try { csvReader = new CSVReader(new FileReader(importFile),’,’);//importFile為要導入的文本格式逗號分隔的csv文件,提供getXX/setXX方法 if(csvReader != null){ //first row is title, so past csvReader.readNext(); String[] csvRow = null;//row while ((csvRow = csvReader.readNext()) != null){ for (int i =0; icsvRow.length; i++){ String temp = csvRow[i]; switch (i) { case 0: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanName(temp); } break; case 1: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanEmail(temp); } break; default: break; } } //保存linkman到數據庫 if(linkman.getLinkmanName() != null linkman.getLinkmanEmail() != null){ EmailLinkmanAPI.insertLinkman(linkman); } } } } catch (Exception e) { e.printStackTrace(); } }2. 二進制格式的csv或xls文件Java代碼 import jxl.Sheet; import jxl.Workbook; import jxl.Sheet; import jxl.Workbook; Java代碼 public void importXlsFile() { Workbook book = null; try { book = Workbook.getWorkbook(importFile);//importFile為要導入的xls文件,或二進制的csv文件,提供getXX/setXX方法 } catch (Exception e) { e.printStackTrace(); } if(book != null){ int sheetNo = book.getNumberOfSheets(); for(int i = 0; i sheetNo; i++){ Sheet sheet=book.getSheet(i); int rowNum = sheet.getRows(); int colNum = sheet.getColumns(); //first row is title, so past for(int r = 1; r rowNum; r++){//行 for(int c = 0; c colNum;c++){//列 String temp = sheet.getCell(c,r).getContents(); switch (c) { case 0: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanName(temp); } break; case 1: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanEmail(temp); } break; default: break; } } //保存linkman到數據庫 if(linkman.getLinkmanName() != null linkman.getLinkmanEmail() != null){ EmailLinkmanAPI.insertLinkman(linkman); } } } } }

如何用java解析CSV文件

思想:先獲取csv文件的路徑,通過BufferedReader類去讀該路徑中的文件,使用readLine方法進行逐行讀取。

注意:使用readLine方法後會自動轉到下一行。因此在判斷是否為空後得先將讀取到的內容賦值給一變量,在循環中使用該變量即可。

public static void main(String[] args)

{

    File csv = new File(“C:\\Users\\chenxumin\\Desktop\\Result.csv”);  // CSV文件路徑

    BufferedReader br = null;

    try

    {

        br = new BufferedReader(new FileReader(csv));

    } catch (FileNotFoundException e)

    {

        e.printStackTrace();

    }

    String line = “”;

    String everyLine = “”;

    try {

            ListString allString = new ArrayList();

            while ((line = br.readLine()) != null)  //讀取到的內容給line變量

            {

                everyLine = line;

                System.out.println(everyLine);

                allString.add(everyLine);

            }

            System.out.println(“csv表格中所有行數:”+allString.size());

    } catch (IOException e)

    {

        e.printStackTrace();

    }

}

java操作csv文件

看樓主比較懂,

參閱RandomAccessFile類

先用seek(long pos)把指針指向文件最後

然後視你的數據用

writeBytes(String s) //有漢字什麼的

writeChars(String s) //一般的字符串

writeUTF(String str) //有UTF-8的字符

寫入數據

java怎麼讀寫創建csv文件

一、使用第三方庫的方法。

目前的第三方庫主要有opencsv、javacsv,貌似還有個叫supercsv,不過都大同小異。

二、使用FileWriter的方法。

這是我最終使用的方法,很好用,也不用添加庫,加一個示例代碼,與大家分享。

import java.io.FileWriter;

import java.io.IOException;

public class javacsv {

/**

* 寫csv文件

*/

public static void main(String[] args) {

try {

java處理csv文件

我來說一下大致的實現步驟,具體實現需要你自己去寫了

1.檢索數據,檢索到的數據假定為一個list

2.你需要自己寫一個objectToString之類的方法來把檢索到的數據轉化為一個String或StringBuffer,就是往各字段間插”,”,往個記錄間插”\r\n”,如此這類的轉換,假定轉換好的字符串為strResult.

3.然後用下面的代碼寫在後台來控制下載,文件名那裡你可以把時間格式控制好,或者用前台傳過來的參數做名字。

response.setContentType(“application/download;charset=UTF-8”);

response.setHeader(“Content-disposition”,”attachment;filename=\”” +new Date()+”.csv\””);

OutputStream o = response.getOutputStream();

byte b[] = strResult.getBytes();

try{

o.write(b);

}catch(IOException e){

e.printStackTrace();

}finally{

o.close();

}

java對操作csv文件

java”importjava.io.BufferedReader;importjava.io.FileReader;publicclassTest{publicvoidtest(introw,intcol){try{BufferedReaderreader=newBufferedReader(newFileReader(“C:\\a.csv”));//換成你的文件名//reader.readLine();//第一行信息,為標題信息,不用,如果需要,注釋掉Stringline=null;intindex=0;while((line=reader.readLine())!=null){Stringitem[]=line.split(“”);//CSV格式文件為逗號分隔符文件,這裡根據逗號切分if(index==row-1){if(item.length=col-1){Stringlast=item[col-1];//這就是你要的數據了System.out.println(last);}}//intvalue=Integer.parseInt(last);//如果是數值,可以轉化為數值index++;}}catch(Exceptione){e.printStackTrace();}}/***@paramargs*/publicstaticvoidmain(String[]args){Testtest=newTest();test.test(3,2);}}你的數據格式有問題,空格的個數不確定,沒法每行用空格分隔。以下是我調整後的數據格式每行的數據以一個空格分隔,test方法傳入的參數一次是,行,列:1電機12WBS23PID34CP5社供出6原価実績7社供WC8外注費9直材費10自家製品11直経費12その他13注殘14注殘

原創文章,作者:CGRZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/142418.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CGRZ的頭像CGRZ
上一篇 2024-10-11 11:41
下一篇 2024-10-11 11:41

相關推薦

發表回復

登錄後才能評論