標籤:png next catch buffer 分享 output load input close
java中介面是不能執行個體化的,然而像下面這種用法是可以的:
List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); File file=new File("D:\\b.pdf"); if(!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(file)); BufferedInputStream bfis=new BufferedInputStream(item.getInputStream()); byte b[]=new byte[2048]; int read=bfis.read(b,0,2048); while(read!=-1) { bos.write(b,0,read); read=bfis.read(b,0,2048); } bfis.close(); bos.flush(); bos.close();
主要看這二行:
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iter = items.iterator();
去List找源碼
List是介面沒有實現,去找一個實現了List的類(ArrayList就可以)
可以看到實際上是返回了一個Itr:
Itr的定義在下面:
一個實現了Iterator介面的私人類。這樣以來就明朗了
java介面變數問題