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");
}
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");
}
解决方案 »
- synchronized和Lock 差别?
- 如何检测一个小图形是否在大图形里面
- 大话设计模式,这本书好吗?
- 有个数据传输的问题困扰小弟很久,今天贴出来,请各位达人指点。
- 大虾们帮我看看房贷的问题!
- 为什么不是先运行System.out.println("beetle constructor");而是先运行了Beetle b = new Beetle();
- 如何得到系统当前的日期和时间,并保存在字符串中?
- 请问一个转换问题:如何将Byte[]转化为Sring类型
- 我想学关于WEB开发方面,想请问一下应该学java的哪方面>???????
- 在沈阳三好街能买到JBuilder5吗?
- 这样重写equals方法可以不
- 这个异常一般问题出在什么地方
CSVデータ読込 读取
ファイルパスよりファイルを取得 / 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