我就是想要这张图片的数据流。要代码。带注释更好。

解决方案 »

  1.   

    File f = new File("d:/1.jpg");
    InputStream is = new FileInputStream(f);
    byte[] b = new byte[(int)f.length()];
    is.read(b);
    is.close();
    return b;
      

  2.   

    只是一个io读取的问题而已。--
    多看看api,多Google一下就有了
      

  3.   

    任何文件都可以,而不仅仅是图片
    创建一个InputStream就可以做到
      

  4.   

    File in = new File(input);
    File out = new File(output);
    // 如果没文件,创建一个
    File parent = out.getParentFile();
    if (!parent.exists())
    parent.mkdirs();
    out.createNewFile();
    byte[] b = new byte[51200];
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
    in));
    BufferedOutputStream bos = new BufferedOutputStream(
    new FileOutputStream(out));
    while (bis.available() > 0) {
    bis.read(b);
    bos.write(b);
    }
    bis.close();
    bos.close();
      

  5.   


    如果要对图片大小等做文章,建议看看Image类的相关东西吧。添加包: 
    import   com.sun.image.codec.jpeg.*; 
    import   java.awt.image.BufferedImage; 
    import   java.awt.image.Kernel; 
    import   java.awt.image.BufferedImageOp; 
    import   java.awt.image.*; 
    添加类成员: 
    private   InputStream       inputStream; 
    private   ByteArrayOutputStream   bout; 
    private   BufferedImage   bufferedImage; 
    ImageIcon   mi   =   new   ImageIcon( "E:\\samples\\java\\SailiTest\\T18Big.gif "); 
    this.saveImage(mi.getImage(), "e:\\2.jpg ");//存成800*600的图像 //转换方法 
    public   void   saveImage(Image   pImage,String   ofileDirAndName) 

        BufferedImage     bimg     =     null; 
        int     w     =     pImage.getWidth(null); 
        int     h     =     pImage.getHeight(null); 
        int     []     pixels     =     new     int[w     *     h]; 
        PixelGrabber   pg   =   new   PixelGrabber(pImage,0,   0,   w,   h,pixels,   0,   w); 
        try   { 
          pg.grabPixels(); 
        } 
        catch(InterruptedException   e)   { 
      e.printStackTrace(); 
          } 
          this.bout=   new   ByteArrayOutputStream();System.out.println( "3 "); 
          System.out.println( "图像宽高: "   +w+ ": "+h   ); 
          BufferedImage   bufferedImage=   new   BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);       bufferedImage.setRGB(0,0,800,600,pixels,0,w); 
          float[]   sharpKernel   =   {   0.0f,   -1.0f,   0.0f,-1.0f,   5.0f,   -1.0f, 0.0f,   -1.0f,   0.0f   };System.out.println( "5 "); 
          BufferedImageOp   sharpen=   new   ConvolveOp(   new   Kernel(3,   3,   sharpKernel),   ConvolveOp.EDGE_NO_OP,   null); 
          BufferedImage   sharp=   sharpen.filter(   bufferedImage,   null   ); 
          try 
          { 
            JPEGEncodeParam   jpegParam=   JPEGCodec.getDefaultJPEGEncodeParam(   sharp   ); 
            jpegParam.setQuality(   1.0f,   false   ); 
            JPEGImageEncoder   jpeg=   JPEGCodec.createJPEGEncoder(   bout,   jpegParam   ); 
              jpeg.encode(   bufferedImage   ); 
              this.bout.writeTo(new   FileOutputStream(ofileDirAndName)); 
        } 
        catch(Exception   ee) 
        { 
    System.err.println( "出错了 "+ee); 
          } 
    }搜的前人写的代码,你看看。
      

  6.   

    http://www.blogjava.net/parable-myth/archive/2006/10/28/77766.html这个也可以看看。
      

  7.   

    本来我可以在form表单提交的时候获取一张图片的数据流。但是我现在需要审核。
    所以必须先把一张图片存在令一个文件夹下。
    这样我就没法办通过formFile自带的.getFileData()的方法获得数据流了。
     如果有方法可以代替FormFile.getFileData()方法获取数据流也可以。