`
ponlya
  • 浏览: 160183 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Spring3之 Resource

阅读更多

主要是org.springframework.core.io.Resource接口

URLResource

@Test
	/**
	 * UrlResource 封装了java.net.URL,它能够被用来访问任何通过URL可以获得的对象,例如:文件、HTTP对象、FTP对象等。
	 * 所有的URL都有个标准的 String表示,这些标准前缀可以标识不同的URL类型,包括file:访问文件系统路径,
	 * http: 通过HTTP协议访问的资源,ftp: 通过FTP访问的资源等等。 
	 * UrlResource 对象可以在Java代码中显式地使用 UrlResource 构造函数来创建
	 *
	 */
	public void testUrlResource() throws Exception{
		Resource resource = new UrlResource("file:/D:/workspace/MyEclipseSSH/Spring305/src/bean.xml");
		//Resource resource = new UrlResource("http://127.0.0.1:8080/index.html");
		//Resource resource = new UrlResource(new URI("http://127.0.0.1:8080/index.html"));
		//System.out.println(resource.getFile().getAbsolutePath());//URL时就不要拿他的路径了,这是拿不到的
		System.out.println(resource.exists());
		System.out.println(resource.isOpen());
		System.out.println(resource.getURL());
		System.out.println(resource.getURI());
		System.out.println(resource.isReadable());
		System.out.println(resource.getFilename());
		System.out.println(resource.getDescription());
		System.out.println(new Date(resource.lastModified()));
	}

 FileSystemResource

	@Test
	/**
	 * 这是为处理 java.io.File 而准备的Resource实现。它既可以作为File提供,也可以作为URL
	 * @throws Exception 
	 */
	public void testFileSystemResource() throws Exception{
		//file:/D:/workspace/MyEclipseSSH/Spring305/ 到本工程的目录中
		Resource resource = new FileSystemResource("src/bean.xml");
		
		System.out.println(resource.exists());
		System.out.println(resource.isOpen());
		System.out.println(resource.getURL());
		System.out.println(resource.getURI());
		System.out.println(resource.isReadable());
		System.out.println(resource.getFilename());
		System.out.println(resource.getDescription());
		System.out.println(new Date(resource.lastModified()));
	}

 ClassPathResource

@Test
	/**
	 * 这个类标识从classpath获得的资源。它会使用线程context的类加载器(class loader)、给定的类加载器或者用来载入资源的给定类。
	 * 如果类路径上的资源存在于文件系统里,这个 Resource 的实现会提供类似于java.io.File的功能。而如果资源是存在于还未解开
	 * (被servlet引擎或其它的环境解开)的jar包中,这些 Resource 实现会提供类似于java.net.URL 的功能。 
	 */
	public void testClassPath() throws IOException{
		
		//Resource resource = new ClassPathResource("/com/spring305/test/resource/ResourceBean.xml");
		Resource resource = new ClassPathResource("com/spring305/test/resource/ResourceBean.xml");
		System.out.println(resource.getFile().getAbsolutePath());
		System.out.println(resource.exists());
		System.out.println(resource.isOpen());
		System.out.println(resource.getURL());
		System.out.println(resource.getURI());
		System.out.println(resource.isReadable());
		System.out.println(resource.getFilename());
		System.out.println(resource.getDescription());
		System.out.println(new Date(resource.lastModified()));
		File file = resource.getFile();
		if(file.isFile()){
			//以字节为单位读取文件的内容,常用于二进制文件,如声音,图象,影象等文件
			InputStream inputStream = new FileInputStream(file);
			int temp ;
			while ((temp = inputStream.read())!=-1) {
				System.out.write(temp);
				//System.out.println(temp);				
			}
			inputStream.close();
		}
		System.out.println("再读");
		if(file.isFile()){
			// 以字符为单位读取文件,常用与读文本,数字等类型的文件
			Reader reader = new InputStreamReader(new FileInputStream(file));
			int temp ;
			while ((temp = reader.read())!=-1) {
				System.out.write(temp);
				//System.out.println(temp);				
			}
			reader.close();
		}
		System.out.println(resource.isOpen());
		
		
	}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics