寫好這些類之后,就可以開始著手測試了。 寫一個測試CSV文件生成的jsp文件。如:
<%@ page contentType="text/html" import="com.vogoal.util.*,com.vogoal.util.csv.*,java.io.IOException" %> create a csv file <% try { CSVCreater csvCre = new CSVCreater("C:\\test.csv"); csvCre.setConvertFlag(true); csvCre.setData("aaa"); csvCre.setData("aa,a"); csvCre.writeLine(); csvCre.setData("aa\"a"); csvCre.setData("aa,a"); csvCre.setData("aa,a"); csvCre.writeLine(); csvCre.setData("aa\"a"); csvCre.setData("aa,\"a"); csvCre.setData("aa,\"a"); csvCre.setData("aa,\"a"); csvCre.setData("aa,\"a"); csvCre.writeLine(); csvCre.close(); } catch (IOException e) { e.printStackTrace(); } %>
寫一個測試CSV文件分析的jsp文件。如:
<%@ page contentType="text/html" import="com.vogoal.util.*,com.vogoal.util.csv.*,java.io.IOException, java.util.ArrayList" %> analysis a csv file<br> <% try { CSVAnalysis csvAna = new CSVAnalysis("C:\\test.csv"); csvAna.setConvertFlag(true); ArrayList al = csvAna.analysis(); for (int i = 0; i < al.size(); i++) { out.println( (i + 1) + " line start<br>"); ArrayList al1 = (ArrayList) al.get(i); for (int j = 0; j < al1.size(); j++) { out.println(al1.get(j)); out.println("<br>"); } out.println( (i + 1) + " line end<br>"); } csvAna.close(); } catch (IOException e) { e.printStackTrace(); } %>
將編譯后的class拷貝到TOMCAT自己的應用的WEB-INF下。將jsp文件放到自己的應用下。 然后啟動TOMCAT,訪問jsp文件,當訪問creCSV.jsp的時候,正常情況下可以看到C盤根目錄下生成了一個test.csv文件。然后訪問anaCSV.jsp文件,可以看到分析后的數(shù)據(jù)被打印出來。
至此,csv生成,分析類做成。
使用幫助:
CSVCreater.java類,用來生成CSV文件的類。 構造函數(shù)public CSVCreater(String arg) throws IOException 參數(shù):arg 要生成的csv文件的絕對路徑 使用例CSVCreater csvCre = new CSVCreater("C:\\test.csv");
public void setConvertFlag(boolean b) 是否轉義設定函數(shù)(將半角雙引號進行轉義處理) 參數(shù):true 需要轉義(推薦) false 不轉義
public void setData(String data) 添加單個數(shù)據(jù)的函數(shù)
public void writeLine() 結束換行函數(shù)
public void writeDataByLine(String[] args) 將一個數(shù)組的元素添加到一行并換行函數(shù)
public void close() throws IOException 必須調用的函數(shù),寫入文件并關閉文件處理的對象。
例子可參考jsp文件中的代碼,但是jsp文件中的close()方法是在try塊中執(zhí)行的,不推薦,使用的時候還是在finally塊中執(zhí)行要安全一些。 這個類涉及到了文件的操作,有可能出現(xiàn)IOException,出現(xiàn)異常的時候會拋出給使用者。
CSVAnalysis.java 構造函數(shù) public CSVAnalysis(String f) throws IOException 參數(shù)是要分析的文件的絕對路徑。
public ArrayList analysis() throws IOException 分析流處理的方法,返回ArrayList對象。返回的ArrayList的數(shù)據(jù)格式是 ArrayList中存放著ArrayList對象,存放的每個ArrayList對象對應csv文件的一行。 一行對應的ArrayList中存放著String對象,為該行中所有的數(shù)據(jù)。
public void close() throws IOException 必須調用的函數(shù),關閉文件處理的對象。 同樣,這個方法應在finally塊中執(zhí)行要安全一些。
源碼下載:CSVproc.zip 源碼為上面提到過的所有的類和jsp文件
經典論壇討論: http://bbs.blueidea.com/thread-2818256-1-1.html
本文鏈接:http://www.95time.cn/tech/program/2008/5247.asp
出處:藍色理想
責任編輯:moby
上一頁 Jsp常用功能—CSV文件的生成與分析 [2] 下一頁
◎進入論壇網(wǎng)絡編程版塊參加討論
|