(十一)读取不同资源

       下面首先按照传统开发实现一些 基本资源读取

1.读取内存资源

org.springframework.core.io.ByteArrayResource

       构造方法:public ByteArrayResource(byte[] byteArray);

范例:实现内存读取

package cn.resource.demo;

import java.io.IOException;
import java.util.Scanner;

import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;

public class ByteResource {
		public static void main(String[] args) throws IOException {
			//此处的内存处理流与之前讲解的ByteArrayInputStream使用形式类似;
			Resource source=new ByteArrayResource("HELLOWORLDE".getBytes());
			//单单就可以取得更多的资源信息来讲,这一点比InputStream要强,
			System.out.println("数据长度"+source.contentLength());
			//如果给出的是InputStream,那么可以利用Scanner简化读取
			//getInputStream是通过InputStreamSource父接口继承而来的,
			Scanner scanner=new Scanner(source.getInputStream());
			if(scanner.hasNext()){
				System.out.println(scanner.next());
			}
		}
}

2.文件读取:org.springframework.core.io.FileSystemResource

构造方法:public FileSystemResource(File file)

构造方法:public FileSystemResource(String path)

范例:进行文件的读取

package cn.resource.demo;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;

public class FileResource {
		public static void main(String[] args) throws IOException {
			Resource source=new FileSystemResource(new File("E:"+File.separator+"练习.txt"));
			
			System.out.println("数据长度"+source.contentLength());
			Scanner scanner=new Scanner(source.getInputStream());
			if(scanner.hasNext()){
				System.out.println(scanner.next());
			}
		}
}

3.CLASSPATH读取:org.springframework.core.io.ClassPathResource

构造方法:poublic ClassPathResource(String path)

        只要是保存在CLASSPATH环境下的路径信息都可以通过此类信息读取进来.

范例:读取applicationContext.xml文件

package cn.resource.demo;

import java.io.IOException;
import java.util.Scanner;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class CPResource2 {
		public static void main(String[] args) throws IOException {
			Resource source=new ClassPathResource("applicationContext.xml");
			System.out.println("数据长度"+source.contentLength());
			Scanner scanner=new Scanner(source.getInputStream());
			scanner.useDelimiter("\n");
			while(scanner.hasNext()){
				System.out.println(scanner.next());
			}
		}
}

       如果要进行文件的读取,必须要提供有完整的路径,也就是所默认的情况下要想读取一个指定的资源,那么必须要想办法拼凑出路径(还需要取得一堆的系统属性).




猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80475052