欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java解析csv代碼 java如何解析csv文件

java處理csv文件

我來(lái)說(shuō)一下大致的實(shí)現(xiàn)步驟,具體實(shí)現(xiàn)需要你自己去寫了

創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨嚒N覀儚牟缓鲇瞥踉L客戶,我們用心做好本職工作,不忘初心,方得始終。十多年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營(yíng)銷服務(wù)商,為您提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、H5響應(yīng)式網(wǎng)站、網(wǎng)站制作、品牌網(wǎng)站制作小程序開(kāi)發(fā)服務(wù),給眾多知名企業(yè)提供過(guò)好品質(zhì)的建站服務(wù)。

1.檢索數(shù)據(jù),檢索到的數(shù)據(jù)假定為一個(gè)list

2.你需要自己寫一個(gè)objectToString之類的方法來(lái)把檢索到的數(shù)據(jù)轉(zhuǎn)化為一個(gè)String或StringBuffer,就是往各字段間插",",往個(gè)記錄間插"\r\n",如此這類的轉(zhuǎn)換,假定轉(zhuǎn)換好的字符串為strResult.

3.然后用下面的代碼寫在后臺(tái)來(lái)控制下載,文件名那里你可以把時(shí)間格式控制好,或者用前臺(tái)傳過(guò)來(lái)的參數(shù)做名字。

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里將從excel讀到的數(shù)據(jù)用csv導(dǎo)出,代碼怎么寫

解釋:csv文件實(shí)際上就是字符串,之間用“,”進(jìn)行分割,之后進(jìn)行的存儲(chǔ)。

工具類如下:

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.util.List;

/**

*

* CSV文件導(dǎo)出工具類

*/

public class CSVUtils {

/**

* CSV文件生成方法

* @param head

* @param dataList

* @param outPutPath

* @param filename

* @return

*/

public static File createCSVFile(List head, ListList dataList,

String outPutPath, String filename) {

File csvFile = null;

BufferedWriter csvWtriter = null;

try {

csvFile = new File(outPutPath + File.separator + filename + ".csv");

File parent = csvFile.getParentFile();

if (parent != null !parent.exists()) {

parent.mkdirs();

}

csvFile.createNewFile();

// GB2312使正確讀取分隔符","

csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(

csvFile), "GB2312"), 1024);

// 寫入文件頭部

writeRow(head, csvWtriter);

// 寫入文件內(nèi)容

for (List row : dataList) {

writeRow(row, csvWtriter);

}

csvWtriter.flush();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

csvWtriter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return csvFile;

}

/**

* 寫一行數(shù)據(jù)方法

* @param row

* @param csvWriter

* @throws IOException

*/

private static void writeRow(List row, BufferedWriter csvWriter) throws IOException {

// 寫入文件頭部

for (Object data : row) {

StringBuffer sb = new StringBuffer();

String rowStr = sb.append("\"").append(data).append("\",").toString();

csvWriter.write(rowStr);

}

csvWriter.newLine();

}

}

Object-Z

java如何用FileIputStream按行讀取csv文件 求代碼

FileInputStream是按字節(jié)讀取文件的

按行讀取的話,用BufferedReader

BufferedReader br = null;

try {

br = new BufferedReader(new FileReader("ss.csv"));

String str = "";

while (null != (str = br.readLine())) {

System.out.println(str);

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (br!= null) {

try {

br.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

用的相對(duì)路徑,ss.csv和類放在一個(gè)文件夾里了

如何用Java解析CSV文件

package com.test;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class TestImportCsv {

private InputStreamReader fr = null;

private BufferedReader br = null;

public TestImportCsv(String f) throws IOException {

fr = new InputStreamReader(new FileInputStream(f));

}

/**

* 解析csv文件 到一個(gè)list中 每個(gè)單元個(gè)為一個(gè)String類型記錄,每一行為一個(gè)list。 再將所有的行放到一個(gè)總list中

*/

public ListListString readCSVFile() throws IOException {

br = new BufferedReader(fr);

String rec = null;// 一行

String str;// 一個(gè)單元格

ListListString listFile = new ArrayListListString();

try {

// 讀取一行

while ((rec = br.readLine()) != null) {

Pattern pCells = Pattern

.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");

Matcher mCells = pCells.matcher(rec);

ListString cells = new ArrayListString();// 每行記錄一個(gè)list

// 讀取每個(gè)單元格

while (mCells.find()) {

str = mCells.group();

str = str.replaceAll(

"(?sm)\"?([^\"]*(\"{2})*[^\"]*)\"?.*,", "$1");

str = str.replaceAll("(?sm)(\"(\"))", "$2");

cells.add(str);

}

listFile.add(cells);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (fr != null) {

fr.close();

}

if (br != null) {

br.close();

}

}

return listFile;

}

public static void main(String[] args) throws Throwable {

TestImportCsv test = new TestImportCsv("D:/test.csv");

ListListString csvList = test.readCSVFile();

}

}

新聞名稱:java解析csv代碼 java如何解析csv文件
文章鏈接:http://chinadenli.net/article42/hgpihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)網(wǎng)站營(yíng)銷網(wǎng)站設(shè)計(jì)商城網(wǎng)站網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司