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接口的私有类。这样以来就明朗了
时间: 2024-10-06 09:41:57