import java.io.File; import java.io.FileOutputStream; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.util.FileCopyUtils; /** * * @Description: 利用spring中的FileCopyUtils.copy()复制文件 * @Author : yc.min * @Date : 2014年1月10日 */ public class Fileutilscopy { public static void main(String[] args) { try { FileOutputStream os=new FileOutputStream(new File("d:/20.jpg")); Resource resource=new ClassPathResource("/1.jpg"); FileCopyUtils.copy(resource.getInputStream(),os);//将1复制给20 System.out.print("SUCEESS"); } catch (Exception e) { e.printStackTrace(); } } }
注:
Resource resource=new ClassPathResource("/1.jpg");
1.jpg文件要放到src,目录下,否则会提示文件不存在
------------------------------------------------------------------------------------
初学Spring在用 Resource rs=new ClassPathResource("applicationContext.xml"); 时老是遇到这个错误。后来发现用 ApplicationContext ctx=new FileSystemXmlApplicationContext ("WebContent/WEB-INF/applicationContext.xml"); 可以解决这个问题。 仔细研究了下: 之所以我用ClassPathResource中找不到applicationContext.xml是因为 我的这个xml文件在建工程的时候默认放在了WebContent/WEB-INF/下面, 但是用ClassPathResource是在当前目录也就是我这个java文件所在的目下进行寻找。 因此把这个xml文件移动到我的src目录下面就ok了。 同理如果是用ApplicationContext ctx=new ClassPathXmlApplicationContext() 也是这样是从当前路径寻找,xml文件应在当前目录下。 但是如果用FileSystemXmlApplicationContext呢,它是根据指定的路径来进行寻找, 所以要把路径写完整。现在xml路径在src文件夹下。那就要写: ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml"); 这是比较直接简单的写法,后来又查了查发现对于FileSystemXmlApplicationContext也可以采用: 1.加上classpath:前缀(这个时候xml要放在当前目录也就是src下) ApplicationContext ctx=new FileSystemXmlApplicationContext ("classpath:applicationContext.xml"); 2.加上file:把路径写全(用这个方法xml可以放任意地方) ApplicationContext ctx=new ClassPathXmlApplicationContext ("file:F:/workspace/SpringExercis/src/applicationContext.xml"); 综上,最简单的方法还是老老实实把xml放在src下方便。 |