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;
只是一个io读取的问题而已。-- 多看看api,多Google一下就有了
任何文件都可以,而不仅仅是图片 创建一个InputStream就可以做到
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();
InputStream is = new FileInputStream(f);
byte[] b = new byte[(int)f.length()];
is.read(b);
is.close();
return b;
多看看api,多Google一下就有了
创建一个InputStream就可以做到
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();
如果要对图片大小等做文章,建议看看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);
}
}搜的前人写的代码,你看看。
所以必须先把一张图片存在令一个文件夹下。
这样我就没法办通过formFile自带的.getFileData()的方法获得数据流了。
如果有方法可以代替FormFile.getFileData()方法获取数据流也可以。