SpringBoot controller接收txt文本文件实现方式

 更新时间:2025年09月30日 08:46:59   作者:万能的小帅  
文章介绍在Spring Boot Controller中接收文本文件的方法,需使用MultipartFile类并通过@RequestParam注解获取,重点说明了获取文件名、内容及保存文件的常用方法,并强调MultipartFile为接口,需通过注解实例化

bard

要在Spring Boot Controller中接收传入的文本文件,您需要使用 MultipartFile类。这是Spring框架提供的一个类,用于处理文件上传相关操作。

以下是一个简单的例子,在Spring Boot Controller中接受传入的txt文件并打印文件名和文本内容:

@PostMapping("/uploadFile")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
    try {
        // 打印文件名
        System.out.println("Received file: " + file.getOriginalFilename());

        // 读取文件内容并打印
        String content = new String(file.getBytes());
        System.out.println("File content: " + content);

        // 返回成功提示
        return "File upload success!";
    } catch (IOException e) {
        e.printStackTrace();
        // 返回失败提示
        return "File upload failed!";
    }
}

在上面的示例中,@RequestParam("file")指示Spring从上传的文件中提取名为“file”的参数。然后,file参数将作为 MultipartFile对象传递给 handleFileUpload方法。

您可以通过调用 file.getOriginalFilename()来获取上传文件的原始文件名,并通过调用 new String(file.getBytes())读取文件内容。

最后,如果上传成功,则返回“File upload success!”消息。

MultipartFile 类中各个方法详细用法说明

MultipartFile是Spring框架中的一个接口,用于表示上传的文件。

下面介绍一些MultipartFile中常用的方法。

  • getName():获取上传文件的名称。
  • getOriginalFilename():获取上传文件的原始名称。
  • getContentType():获取上传文件的MIME类型。
  • getBytes():获取上传文件的字节数组。
  • getSize():获取上传文件的大小(字节)。
  • isEmpty():判断上传文件是否为空。
  • transferTo(File dest):将上传文件保存到指定的文件系统中的File对象。
  • getResource():以Resource形式获取上传文件。
  • getInputStream():以InputStream形式获取上传文件的数据流。

除了以上常用方法,MultipartFile还有一些其他方法,可以根据具体需求灵活使用。

需要注意的是,MultipartFile是Spring框架中的接口,需要在代码中进行实例化,常见的方式是在Controller的方法中使用@RequestParam注解获取上传文件,并将其注入MultipartFile类型的参数中。

代码实践

 @PostMapping("/uploadFile")
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        try {
            // 打印文件名
            System.out.println("Received file: " + file.getOriginalFilename());

            InputStreamReader isr = new InputStreamReader(file.getInputStream());
            BufferedReader br = new BufferedReader(isr);
            String str = null;
            while ((str = br.readLine()) != null){
                System.out.println(str);
            }
            System.out.println("----------------------------------------------");
            // 读取文件内容并打印
            String content = new String(file.getBytes());
            System.out.println("File content: " + content);

            // 返回成功提示
            return "File upload success!";
        } catch (IOException e) {
            e.printStackTrace();
            // 返回失败提示
            return "File upload failed!";
        }
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java有序二叉树的删除节点方式

    java有序二叉树的删除节点方式

    文章描述了在二叉树中删除节点的三种情况及其对应的操作步骤,通过递归找到节点及其父节点,并根据节点的子树情况(无子树、单子树、双子树)进行相应的删除操作,文章还提供了一个测试类来验证删除操作的正确性
    2024-12-12
  • Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

    Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

    使用Jackson库进行JSON序列化时遇到了无限递归(Infinite Recursion)问题,这是因为两个实体类ComPointQuotaEntity和 ComPointEntity之间存在双向关联point和pointQuota相互引用,本文给大家介绍解决方案,感兴趣的朋友一起看看吧
    2025-03-03
  • 分别在Groovy和Java中创建并初始化映射的不同分析

    分别在Groovy和Java中创建并初始化映射的不同分析

    这篇文章主要为大家介绍了分别在Groovy和Java中创建并初始化映射的不同分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

    2022-03-03
  • 浅谈JSON的数据交换、缓存问题和同步问题

    浅谈JSON的数据交换、缓存问题和同步问题

    这篇文章主要介绍了浅谈JSON的数据交换、缓存问题和同步问题,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Java反射机制,如何将一个实体类所有字段赋值为null

    Java反射机制,如何将一个实体类所有字段赋值为null

    这篇文章主要介绍了Java反射机制,如何将一个实体类所有字段赋值为null,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • JAVA实现扫描线算法(超详细)

    JAVA实现扫描线算法(超详细)

    扫描线算法就是从Ymin开始扫描,然后构建出NET,之后根据NET建立AET。接下来本文通过代码给大家介绍JAVA实现扫描线算法,感兴趣的朋友一起看看吧
    2019-10-10
  • Java不可变类机制浅析

    Java不可变类机制浅析

    所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。接下来通过本文给大家介绍Java不可变类机制,需要的朋友参考下
    2017-02-02
  • java WebSocket实现聊天消息推送功能

    java WebSocket实现聊天消息推送功能

    这篇文章主要为大家详细介绍了java WebSocket实现聊天消息推送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Java基础第四篇 封装与接口

    Java基础第四篇 封装与接口

    本文将对介绍Java 的封装与接口进行介绍,将要封装(encapsulation)对象的成员(成员包括数据成员和方法),从而只允许从外部调用部分的成员。利用封装,我们可以提高对象的易用性和安全性。想具体了解的小伙伴请参考下面文章的内容
    2021-09-09
  • Java实现单线程聊天室

    Java实现单线程聊天室

    这篇文章主要为大家详细介绍了Java实现单线程聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09

最新评论