public ActionForward viewCSV(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response,
Connection mCon,
Connection pCon,
Connection sCon)throws Exception{
log.info(this.getClass().getSimpleName() + " viewCSV 開始");

HttpSession session = (HttpSession)request.getSession(false);
try {
Em0049ActionForm actionForm = (Em0049ActionForm)form;

FormFile formFile = actionForm.getFilePath();
log.info("ファイルの存在チェック開始");
//ファイル名を取得
String fileName = UplodeFileUtil.getUploadFileName(formFile);

// ファイルパスよりファイルを取得
// File file = new File(fileName);

// ファイル名取得
// String fileName = UplodeFileUtil.getUploadFileName(fileName);

// ファイル存在チェック
if (!UplodeFileUtil.checkUploadFile(formFile)) {
log.info(MessageUtil.getString("error.fileNotExist"));
log.info("名前" + fileName);
actionForm.setMes(MessageUtil.getString("error.fileNotExist"));
return mapping.findForward("fileError");
}

// ファイルの拡張子を取得
String fileExtension = FileUtil.getExtension(fileName);

// ファイルがCSVかチェック
if (DataCheckUtil.isStringEmpty(fileExtension) 
|| !fileExtension.equals("csv")) {
actionForm.setMes(MessageUtil.getString("error.noCSV"));
return mapping.findForward("fileError");
}

log.info("ファイルを一時的にアップロードします。");
//ファイルを一時的にアップロードする
//保存するディレクトリ名を作成する
String inputFileDir = MessageUtil.getString("TEMP_DIR");
log.info("格納ディレクトリ:" + inputFileDir + " に設定します。");

//ファイルのアップロードを行う。
if (!UplodeFileUtil.upload(formFile, inputFileDir, fileName)) {
request.setAttribute("MSG", MessageUtil.getString("errors.IOException"));
log.info(MessageUtil.getString("errors.IOException"));
return mapping.findForward("error");
}

List<Em0049DetailActionForm> detailList = actionForm.getDetailList();
detailList.clear();
Em0049DetailActionForm detail = new Em0049DetailActionForm();
//ファイルの絶対パスを取得する
File file = new File(inputFileDir + fileName);

//ファイルのデータを読み込む
BufferedReader br = new BufferedReader(new FileReader (file));

// BufferedReader buf = new BufferedReader();
// BufferedReader br = new BufferedReader(new FileReader(file));

// CSVデータ読込
while (br.ready()) {

// 一行読込
String line = br.readLine();

// データが入力されていない行は表示を行わない
if (!DataCheckUtil.isStringEmpty(line.replaceAll(",", ""))) {
String[] lineArray;
// 要素数が不足している場合は必要分空の要素を追加する
if (line.split(",").length < Em0049Constant.CSV_COLUMN_COUNT) {
String[] temp = line.split(",");
lineArray = new String[8];
for (int i = 0; i < temp.length; i++) {
lineArray[i] = temp[i];
}
// 要素数がオーバーしている場合はエラーメッセージを表示する
} else if(Em0049Constant.CSV_COLUMN_COUNT < line.split(",").length) {
actionForm.setMes(MessageUtil.getString("error.notCSVContents"));
actionForm.setListSize(detailList.size());
return mapping.findForward("fileError");
} else {
lineArray = line.split(",");
}
detail.setDataFirst(DataChangeUtil.replaceNull(lineArray[0]));
detail.setDataSecond(DataChangeUtil.replaceNull(lineArray[1]));
detail.setHaishutuZigyojo(DataChangeUtil.replaceNull(lineArray[2]));
detail.setKatashiki(DataChangeUtil.replaceNull(lineArray[3]));
detail.setKanriNo(DataChangeUtil.replaceNull(lineArray[4]));
detail.setSeizoNo(DataChangeUtil.replaceNull(lineArray[5]));
detail.setYear(DataChangeUtil.replaceNull(lineArray[6]));
detail.setBiko(DataChangeUtil.replaceNull(lineArray[7]));

detailList.add(detail);

detail = new Em0049DetailActionForm();
}
}
br.close();

actionForm.setDetailList(detailList);
actionForm.setListSize(detailList.size());

// データ取得に伴い、ソート状態を初期化
actionForm.setSort("");
actionForm.setSortName("");

} catch (Exception e) {
e.printStackTrace();
request.setAttribute("MSG",ResourceBundle.getBundle(
"messageresources.ApplicationMessage").getString(
"error.SQLException")
+ "<BR>");
log.info(e.getMessage());
return mapping.findForward("error");
}
return mapping.findForward("success");
}

解决方案 »

  1.   

    这好像是从cvs里面读取数据的操作吧
    CSVデータ読込  读取
      

  2.   

    自己看注释:ファイル名を取得 / To get the file name / 获取文件名
    ファイルパスよりファイルを取得 / Get a file from the file path / 根据文件路径创建 File 对象
    ファイル名取得 / Retrieve the file name / 获取上传文件的文件名
    ファイル存在チェック / Check the file exists / 检测文件是否存在
    ファイルの拡張子を取得 / To get the file extension / 获取文件扩展名
    ファイルがCSVかチェック / Files CSV check / 检测文件是否是 CVS 文件
    ファイルを一時的にアップロードする / Upload files to a temporary / 将上传的文件保存到一个临时文件夹
    保存するディレクトリ名を作成する / To create a directory name / 创建给定名字的文件夹
    ファイルのアップロードを行う
    ファイルの絶対パスを取得する / To obtain the absolute path of the file / 获得文件的绝对路径
    ファイルのデータを読み込む
    CSVデータ読込 / CSV data read / 读取CVS数据
    一行読込 / Read one line / 读入一行
    データが入力されていない行は表示を行わない / Data is not entered in the line do not show up / 这行中的数据不是输入的不能显示
    要素数が不足している場合は必要分空の要素を追加する / Not enough elements to check if the necessary elements to add minutes
    要素数がオーバーしている場合はエラーメッセージを表示する / Over the number of elements if the barf
    データ取得に伴い、ソート状態を初期化 / Data obtained as a result of the sort of initial state