本文目錄一覽:
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-tw/n/142418.html