<a href="C:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/aa.jpg">含有空格的文件</a>
你是不要这样的.就是把路径用引号引起来就可以了
你是不要这样的.就是把路径用引号引起来就可以了
解决方案 »
- 困扰多日的问题!严重: ORA-01400: 无法将 NULL 插入
- XML文档与数据库之间进行数据交换
- Hibernate表关联引发的性能问题
- 各位高手这是什么意思啊??Warning: classic VM not supported; client VM will be used
- 请问一个关于sqlserver2000的问题,请各们达人进!
- 关于log4j属性文件加载的问题和写入数据库的问题??
- ★ 请教一个CMR的简单问题 ★
- jabber与电子邮件的结合反垃圾邮件的方案设想。
- myeclipse开发问卷调查项目,遇到jsp向java传值问题,求指教
- java如何生成序列,并且重启项目不会重置?
- ireport中的模糊查询
- Ireport 实现子表的动态列问题
request.getRealPath("/");获得绝对路径
我找了个类(不是自己写的),目的是:将超过指定大小的图片按比例缩小到指定规格,保存为另外的图片,代码如下:
/**
*
*/
package com.bin.Test;import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;import javax.imageio.ImageIO;/**
* @author Administrator
*
*/
public class ControlImage {
public static BufferedImage resize(BufferedImage source) {
int type = source.getType();
BufferedImage target = null; double width = source.getWidth();
double height = source.getHeight();
double wi = 0.0, he = 0.0, hh = 0.0;
int w = 0, h = 0; if (width > 94) {
wi = 94;
hh = source.getHeight();
if (hh > 120) {
he = 120;
wi = (120 * height) / hh;
System.out.println(wi + "----" + he);
}
} else if (height > 120 && width < 94) {
wi = width;
he = 120;
}
w = (int) wi;
h = (int) he;
System.out.println(w + "----" + h); if (type == BufferedImage.TYPE_CUSTOM) {
ColorModel cm = source.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(w, h);
boolean bl = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, bl, null);
} else {
target = new BufferedImage(w, h, type);
}
Graphics2D g = target.createGraphics();
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.drawRenderedImage(source, AffineTransform.getScaleInstance(w, h));
g.dispose(); return target;
} public static void saveImageAsJpg(String fromFileStr, String saveToFileStr)
throws Exception {
BufferedImage srcImage;
// String ex =
// fromFileStr.substring(fromFileStr.indexOf("."),fromFileStr.length());
String imgType = "JPEG";
if (fromFileStr.toLowerCase().endsWith(".png")) {
imgType = "PNG";
}
// System.out.println(ex);
File saveFile = new File(saveToFileStr);
File fromFile = new File(fromFileStr); srcImage = ImageIO.read(fromFile); srcImage = ControlImage.resize(srcImage); ImageIO.write(srcImage, imgType, saveFile);
} public static void main(String argv[]) {
try {
// 参数1(from),参数2(to),参数3(宽),参数4(高)
ControlImage.saveImageAsJpg("F:\\rb\\images\\m_2.jpg", "f:/7.jpg");
System.out.println("ok----");
} catch (Exception e) {
e.printStackTrace();
}
}
}
main方法中有个ControlImage.saveImageAsJpg()方法,第一个和第二个参数是图片的源路径+文件和新路径+文件,但是对于路径中含有空格的处理不了就这了,可能是我给的那个路径误导了大家,呵呵
在处理文件路径的时候可以采用这种方式:可以根据不同操作系统产生对应的"/"or"\"代码如下:
File fDir=new File(File.separator);
String strFile="JavaLesson"+File.separator+"Lesson6";
File f=new File(fDir,strFile);
ControlImage.saveImageAsJpg("d:\\my temp\\a.jpg", "d:/a.jpg");
我直接试了下,没问题的
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at com.bin.Demo.ControlImage.saveImageAsJpg(ControlImage.java:76)
at com.bin.Demo.ControlImage.main(ControlImage.java:86)76行是: srcImage = ImageIO.read(fromFile);
86行是: ControlImage.saveImageAsJpg("F:\\aa aa\\bb bb\\7.jpg", "f:/1.jpg");我用不含空格的路径就是好的所以这肯定是因为空格问题啦!
ControlImage.saveImageAsJpg("\"" + "d:\\my temp\\a.jpg" + "\"", "d:/a.jpg");