- PR -

ByteBufferからのデータ取得方法

1
投稿者投稿内容
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2006-06-03 18:31
こんにちは。まつじんと言います。
実は、あるプログラムを受け継いだのですが、
今までに自分はファイルの入出力処理をやったことが
なかった為に、下記に記述してあるファイルのデータを
操作しているByteBufferの箇所が分かりませんでした。

まず、この処理を簡単に説明しますと、HTMLより
<input type="file">を使ってCSVファイルを取得し
サーブレット側でorg.apache.commons.fileuploadを
使って取得したCSVデータをc:¥CSV¥data.csvのデータに
追記する処理を行っています。
それで、現在自分が行いたいと思っているのは
htmlより取得したCSVデータの一行目の日付データを取得して、
正しいデータかを判断したいと思っています。
それで、変換させる箇所は検討がつくのですが、
ByteBufferをどのようにすれば、
一行目のデータだけをStringに変換できるのか
分かりませんでした。
もし、分かる方や参考になるサイトがありましたら
教えて頂けないでしょうか。
よろしくお願い致します。

csvファイルフォーマット(可変長)
=================================
2000/01/01,2222,11111,11111
.
.
.
=================================

servletソース
=================================
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

File path = new File("c:¥test");

rFile = new FileOutputStream("c:¥CSV¥data.csv", true);
channel = rFile.getChannel();

DiskFileItemFactory dfi = new DiskFileItemFactory();
dfi.setRepository(path);
dfi.setSizeThreshold(10240);
ServletFileUpload sfu = new ServletFileUpload(dfi);
sfu.setSizeMax(-1);
sfu.setHeaderEncoding(SJIS);

List objLst = sfu.parseRequest(request);
Iterator objltr = objLst.iterator();
FileItem objFi = null;
ByteBuffer buffer = null;

while (objltr.hasNext()) {
objFi = (FileItem)objltr.next()
buffer = ByteBuffer.allocate((int)objFi.getSize());
buffer =
ByteBuffer.wrap(objFi.getString(SJIS).getBytes());
//ここの箇所でbufferに入っているデータをStringにする?
channel.write(buffer);
objFi.delete();
buffer = null;

}
================================================
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2006-06-04 17:37
どうも、こんにちは。
実は、質問した後に自分で調べてなんとかできるようになりました。
ちなみに
String str = new String(objFi.get());
で取得できました。
御迷惑をおかけしました。
1

スキルアップ/キャリアアップ(JOB@IT)