如何实现csv文件的读写操作
请教各位大侠,谁有写过实现对csv文件的读写操作的java代码,有源码的话帮忙贴上来,我是一点思路都没有~~~~
[解决办法]
简单啊
[解决办法]
朋友,你是要对以csv为后缀的文件进行读写操作吧,如果是,那我可以给你个网址你去参考吧!
http://www.1cn.biz/java/index.php?q=node/237
[解决办法]
CVS 写操作部分代码。
ZZDownloadUtil.createCsv(
outList,
"KT_CEIT.dat ",
csvHeader,
response);
================================================
public static void createCsv(
final List csvList,
final String csvFileName,
final String csvHeader,
final HttpServletResponse response)
throws ZZServerException {
OutputStream outputStream = null;
try {
ZZDownloadUtil.setResponseBeforeDownload(response, csvFileName);
outputStream = response.getOutputStream();
ZZCsvWriter.writeCSV(csvList, csvHeader, null, outputStream);
} catch (IOException e) {
} catch (Exception e) {
} finally {
if (null != outputStream) {
try {
outputStream.close();
} catch (Exception e) {
throw new ZZServerException(e.getMessage());
}
}
}
}
public static final void setResponseBeforeDownload(
HttpServletResponse response,
String filename)
throws ZZServerException {
try {
response.setCharacterEncoding( "Shift_JIS ");
response.setContentType( "application/x-msbinary ");
response.setHeader(
"Content-Disposition ",
"attachment; filename= "
+ new String(filename.getBytes( "Shift_JIS "), "ISO8859_1 "));
} catch (UnsupportedEncodingException e) {
}
}
public static void writeCSV(
List data,
String headerStr,
String tailStr,
OutputStream outputStream) throws IOException {
String csvString = convertDataToCSV(data, headerStr, tailStr);
Writer sw = null;
try {
if (outputStream != null) {
String charset = "Windows-31J ";
sw = new BufferedWriter(
new OutputStreamWriter(outputStream, charset));
//sw = new BufferedWriter(new OutputStreamWriter(outputStream));
sw.write(csvString);
}
} finally {
if (sw != null) {
sw.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
public static String convertDataToCSV(
List data,
String headerString,
String tailString) {
StringBuffer csvData = new StringBuffer();
if (!ZZStringUtil.isNull(headerString)) {
csvData.append(headerString);
csvData.append(STR_CRLF);
}
convertDataToString(data, csvData);
csvData.append(STR_CRLF);
if (!ZZStringUtil.isNull(tailString)) {
csvData.append(tailString);
csvData.append(STR_CRLF);
}
return csvData.toString();
}
private static void convertDataToString(List data, StringBuffer csvData) {
if (data == null) {
return;
}
final int rowSize = data.size();
for (int iRow = 0; iRow < rowSize; iRow++) {
List rowData = (List) data.get(iRow);
final int colSize = rowData.size();
for (int iCol = 0; iCol < colSize; iCol++) {
csvData.append(adjustCsv((String) rowData.get(iCol)));
if (iCol < colSize - 1) {
csvData.append(STR_COMMA);
}
}
if (iRow < rowSize - 1) {
csvData.append(STR_CRLF);
}
}
}
public static String adjustCsv(String paramObj) {
if (paramObj == null) {
paramObj = " ";
}
String str = paramObj;
if (0 <= str.indexOf(STR_CRLF)) {
str = str.replaceAll(STR_CRLF, STR_LF);
}
if (0 <= str.indexOf(STR_CR)) {
str = str.replaceAll(STR_CR, STR_LF);
}
boolean isNecessary = false;
if (0 <= str.indexOf(STR_LF)) {
isNecessary = true;
}
if (0 <= str.indexOf(STR_COMMA)) {
isNecessary = true;
}
if (0 <= str.indexOf(STR_DOUBLE_QUART)) {
str = str.replaceAll(STR_DOUBLE_QUART,
STR_DOUBLE_QUART + STR_DOUBLE_QUART);
isNecessary = true;
}
if (isNecessary) {
StringBuffer sb = new StringBuffer();
sb.append(STR_DOUBLE_QUART);
sb.append(str);
sb.append(STR_DOUBLE_QUART);
str = sb.toString();
}
return str;
}
public static final String STR_COMMA = ", ";
public static final String STR_DOUBLE_QUART = "\ " ";
public static final String STR_CRLF = "\r\n ";
public static final String STR_LF = "\n ";
public static final String STR_CR = "\r ";