- - PR -
ByteBufferからのデータ取得方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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; } ================================================ |
|
投稿日時: 2006-06-04 17:37
どうも、こんにちは。
実は、質問した後に自分で調べてなんとかできるようになりました。 ちなみに String str = new String(objFi.get()); で取得できました。 御迷惑をおかけしました。 |
1