以前にfileUploadを使用して1つのサーバーにファイルをアップロードしましたが、今は別のことをする必要があります。アップロードされているファイルがディスクに書き込まれることはありませんが、代わりに1行ずつ読み取って、DBに挿入する必要があります(各行はクーポン/割引を表します)。これは内部コンテンツ管理システムであるため、ファイルが10行程度より大きく、最大100行。
作業コードをtweekingして、BufferedReaderを使用し、読み込まれたときに処理しようとしましたが、NullPointerExceptionが発生し続けます(ただし、スタックトレースが欠落しているため、適切な出力を取得するにはlog4jで遊ぶ必要があります)。誰かがウェブで例を見たことがありますか、または私が間違っていることを知っていますか?
私のコードスニペット:
BufferedInputStream in = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
String enc = request.getCharacterEncoding();
for (FileItem item : items) {
if (item.isFormField()) {
if ("code".equalsIgnoreCase(fileItem.getFieldName()))
this.code = fileItem.getString(enc);
... // set these to local variables
} else {
in = new BufferedInputStream(new FileInputStream(item.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
insert2DB(line);
}
}
}
他に何かする必要がありますか、それとも最初にディスクに書き込んでから読み取る必要がありますか?