【Spring】获取资源文件+从File+从InputStream对象获取正文数据

简介: 1.获取资源文件或者获取文本文件等,可以通过Spring的Resource的方式获取2.仅有File对象即可获取正文数据3.仅有InputStream即可获取正文数据  1 package com.
1.获取资源文件或者获取文本文件等,可以通过Spring的Resource的方式获取
2.仅有File对象即可获取正文数据
3.仅有InputStream即可获取正文数据

 

 1 package com.sxd.test.test1;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileReader;
 6 import java.io.IOException;
 7 import java.io.InputStream;
 8 import java.nio.file.Files;
 9 import java.util.List;
10 
11 import org.junit.Test;
12 import org.springframework.core.io.ClassPathResource;
13 import org.springframework.core.io.Resource;
14 
15 public class GetResource {
16     
17     /**
18      * 获取资源文件的 方法之一-----使用Spring架包中的Resource类实现
19      * 当然 获取资源文件还有不同来源的资源文件有相应的Resource实现:
20      * FileSystemResource-----文件资源
21      * ClassPathResource-----ClassPath资源
22      * UrlResource-----------URL资源
23      * InputStreamResource---InputStream资源
24      * ByteArrayResource-----Byte数组资源
25      * @throws IOException
26      */
27     @Test
28     public void getResouce() throws IOException{
29         Resource resource =new  ClassPathResource("beanFactoryTest.xml");
30         InputStream in = resource.getInputStream();
31         String fileName = resource.getFilename();
32         String description = resource.getDescription();
33         long contentLength = resource.contentLength();
34         File file = resource.getFile();
35         
36         
37         System.out.println("文件名:"+fileName);
38         System.out.println("描述:"+description);
39         System.out.println("正文长度:"+contentLength);
40         
41         
42         /**
43          * 有File对象就可以读取到正文的数据-----方法1
44          */
45         List<String> list = Files.readAllLines(file.toPath());
46         for (String string : list) {
47             System.out.println(string);
48         }
49         
50         
51         System.out.println("------------------------------------------------------------------------------------------------- ");
52         /**
53          * 有File对象可以读取正文的数据  ----方法2
54          */
55         BufferedReader br = new BufferedReader(new FileReader(file));
56         String str = null;
57         while((str=br.readLine()) != null){
58             System.out.println(str);
59         }
60         
61         System.out.println("--------------------------------------------------------------------------------------------------");
62         /**
63          * 有InputStream可以读取正文数据
64          */
65         int contentLen = in.available();
66         byte[] st = new byte[contentLen];
67          in.read(st);
68          System.out.println(new String(st));
69         
70     }
71 }
View Code

 

相关文章
|
8月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
8071 114
|
8月前
|
NoSQL Java 数据库连接
《深入理解Spring》Spring Data——数据访问的统一抽象与极致简化
Spring Data通过Repository抽象和方法名派生查询,简化数据访问层开发,告别冗余CRUD代码。支持JPA、MongoDB、Redis等多种存储,统一编程模型,提升开发效率与架构灵活性,是Java开发者必备利器。(238字)
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——封装统一返回的数据结构
本文介绍了在Spring Boot中封装统一返回的数据结构的方法。通过定义一个泛型类`JsonResult&lt;T&gt;`,包含数据、状态码和提示信息三个属性,满足不同场景下的JSON返回需求。例如,无数据返回时可设置默认状态码&quot;0&quot;和消息&quot;操作成功!&quot;,有数据返回时也可自定义状态码和消息。同时,文章展示了如何在Controller中使用该结构,通过具体示例(如用户信息、列表和Map)说明其灵活性与便捷性。最后总结了Spring Boot中JSON数据返回的配置与实际项目中的应用技巧。
1036 0
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——使用 fastJson 处理 null
本文介绍如何使用 fastJson 处理 null 值。与 Jackson 不同,fastJson 需要通过继承 `WebMvcConfigurationSupport` 类并覆盖 `configureMessageConverters` 方法来配置 null 值的处理方式。例如,可将 String 类型的 null 转为 &quot;&quot;,Number 类型的 null 转为 0,避免循环引用等。代码示例展示了具体实现步骤,包括引入相关依赖、设置序列化特性及解决中文乱码问题。
712 0
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——Spring Boot 默认对Json的处理
本文介绍了在Spring Boot中返回Json数据的方法及数据封装技巧。通过使用`@RestController`注解,可以轻松实现接口返回Json格式的数据,默认使用的Json解析框架是Jackson。文章详细讲解了如何处理不同数据类型(如类对象、List、Map)的Json转换,并提供了自定义配置以应对null值问题。此外,还对比了Jackson与阿里巴巴FastJson的特点,以及如何在项目中引入和配置FastJson,解决null值转换和中文乱码等问题。
1817 0
|
人工智能 安全 Dubbo
Spring AI 智能体通过 MCP 集成本地文件数据
MCP 作为一款开放协议,直接规范了应用程序如何向 LLM 提供上下文。MCP 就像是面向 AI 应用程序的 USB-C 端口,正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一个将 AI 模型连接到不同数据源和工具的标准化方法。
10016 120
|
11月前
|
JSON Java 数据格式
Spring Boot返回Json数据及数据封装
在Spring Boot中,接口间及前后端的数据传输通常使用JSON格式。通过@RestController注解,可轻松实现Controller返回JSON数据。该注解是Spring Boot新增的组合注解,结合了@Controller和@ResponseBody的功能,默认将返回值转换为JSON格式。Spring Boot底层默认采用Jackson作为JSON解析框架,并通过spring-boot-starter-json依赖集成了相关库,包括jackson-databind、jackson-datatype-jdk8等常用模块,简化了开发者对依赖的手动管理。
871 3
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
463 21
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
490 12
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
604 12

热门文章

最新文章