当前位置: 首页 > news >正文

文件相关工具类

文章目录

    • 1.MultipartFile文件转File
    • 2.读取文件(txt、json)
    • 3.下载网络文件
    • 4.压缩文件

1.MultipartFile文件转File

    public File transferToFile(MultipartFile multipartFile) {
//       选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。File file = null;try {String originalFilename = multipartFile.getOriginalFilename();String[] filename = originalFilename.split("\\.");file=File.createTempFile(filename[0], filename[1]);multipartFile.transferTo(file);file.deleteOnExit();} catch (IOException e) {e.printStackTrace();}return file;}

2.读取文件(txt、json)

 public String readerMethod(File file) throws IOException {FileReader fileReader = new FileReader(file);Reader reader = new InputStreamReader(new FileInputStream(file), "Utf-8");int ch = 0;StringBuffer sb = new StringBuffer();while ((ch = reader.read()) != -1) {sb.append((char) ch);}fileReader.close();reader.close();String jsonStr = sb.toString();return jsonStr;}

3.下载网络文件

   /*** 从网络Url中下载文件-兼容linux** @param urlStr 网络文件地址* @param fileName 要保存的文件名* @param savePath  要保存的文件路径* @throws IOException*/public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();//设置超时间为3秒conn.setConnectTimeout(2 * 1000);//防止屏蔽程序抓取而返回403错误conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//得到输入流InputStream inputStream = conn.getInputStream();//获取自己数组byte[] getData = readInputStream(inputStream);//文件保存位置File saveDir = new File(savePath);if (!saveDir.exists()) {saveDir.mkdir();}File file = new File(saveDir + File.separator + fileName);FileOutputStream fos = new FileOutputStream(file);fos.write(getData);if (fos != null) {fos.close();}if (inputStream != null) {inputStream.close();}}

4.压缩文件

        <!--文件压缩--><dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency>
  //压缩文件Thumbnails.of("完整本地文件地址").scale(1f)//缩放比例.outputQuality(0.5f)//图片质量,在0到1,越接近于1质量越好,越接近于0质量越差。.toFile("压缩完成存放的文件地址");

相关文章:

文件相关工具类

文章目录 1.MultipartFile文件转File2.读取文件(txt、json)3.下载网络文件4.压缩文件 1.MultipartFile文件转File public File transferToFile(MultipartFile multipartFile) { // 选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()…...

18795-2012 茶叶标准样品制备技术条件

声明 本文是学习GB-T 18795-2012 茶叶标准样品制备技术条件. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了各类茶叶(除再加工茶)标准样品的制备、包装、标签、标识、证书和有效期。 本标准适用于各类茶叶(除再加工茶)感官品质…...

C++11互斥锁的使用

是C11标准库中用于多线程同步的库&#xff0c;提供互斥锁(mutex)及其相关函数。 以下是一些基本的使用示例&#xff1a; 1.创建和销毁互斥锁 #include <mutex>std::mutex mtx;2.加锁 std::lock_guard<std::mutex> lock(mtx); // 加锁 // 或者 mtx.lock(); //…...

unity 桌面程序

using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using UnityEngine; public class chuantou : MonoBehaviour { [DllImport(“user32.dll”)] public static extern int MessageBox(IntPtr hwnd,string t…...

echarts统一纵坐标y轴的刻度线,刻度线对齐。

要求&#xff1a; 纵坐标刻度线对齐&#xff1b;刻度间隔为5&#xff1b;去掉千位默认的逗号&#xff1b;刻度最小是0. 效果图&#xff1a; 代码&#xff1a; yAxis: [{type: "value",position: "left",name: "kW",offset: 100,nameTextStyle:…...

一个数据库版本兼容问题

mysql旧的版本号是&#xff1a;5.3.10 本机版本号是&#xff1a;8.0.22 报错&#xff1a;“com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create” 1.程序里做兼容&#xff1a; <dependency><groupId>mysql</groupId>…...

学习Nano编辑器:入门指南、安装步骤、基本操作和高级功能

文章目录 使用Nano编辑器入门指南引言1.1 关于Nano编辑器1.2 Nano的起源和特点 安装Nano2.1 在Debian/Ubuntu系统上安装Nano2.2 在CentOS/RHEL系统上安装Nano2.3 在其他Linux发行版上安装Nano 启动Nano3.1 命令行启动Nano3.2 打开文件 Nano的基本操作4.1 光标移动和选择文本4.2…...

在北京多有钱能称为富

背景 首先声明&#xff0c;此讨论仅限个人的观点&#xff0c;因为我本身不富嘛&#xff0c;所以想法应该非常局限。 举个栗子 富二代问我朋友&#xff0c;100~1000w之间&#xff0c;推荐一款车&#xff1f; 一开始听到这个问题的时候&#xff0c;有被唬住&#xff0c;觉得预…...

Chrome扩展程序开发随记

在Chrome浏览器向正被浏览的外网网页植入自定义JS脚本 为了实现如标题的目的&#xff0c;需要开发一个Chrome扩展程序。接下来内容是实现简要步骤&#xff1a; 一、新建文件夹&#xff0c;命名为项目名&#xff0c;如“MyPlugin”。 二、进入文件夹内&#xff0c;新建名为“…...

使用命令行快速创建Vite项目

一、构建项目 在终端中使用如下命令行&#xff1a; npm create vite 二、定义项目名称 三、选择项目类型 Vanilla是我们常用的JavaScript&#xff0c;Vue和React是常用前端框架&#xff0c;可以根据自己的需要进行选择 通过上下键进行选择&#xff0c;按下回车进行确认 创建…...

int *a, int **a, int a[], int *a[]的区别

int *a; ---定义一个指向整型变量的指针a int **a; ---定义一个指向整型变量指针的指针a int a[]; ---定义一个整型变量数组a int *a[]; ---定义一个指向整型变量指针的数组a...

leetcode100----双指针

283. 移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1:输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2:输入: nums …...

ORM基本操作

ORM基本操作 基本操作包括增删改查操作&#xff0c;即(CRUD操作) CRUD是指在做计算处理时的增加(Create)、读取查询(Read)、更新Update)和删除(Delete) ORM CRUD 核心-> 模型类管理器对象 每个继承自 models.Model 的模型类&#xff0c;都会有一个 objects 对象被同样继…...

c语言进阶部分详解(指针进阶2)

大家好&#xff01;我快马加鞭接着写出指针部分part2部分。第一部分见&#xff1a;c语言进阶部分详解&#xff08;指针进阶1&#xff09;_总之就是非常唔姆的博客-CSDN博客 指针初阶部分见&#xff1a;c语言进阶部分详解&#xff08;指针初阶&#xff09;_总之就是非常唔姆的博…...

Java基础(一)——Hello World,8种数据类型,键盘录入

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

JAVA学习笔记(IF判断结构)

/*** 学习JAVA单分支结构* 掷骰子游戏* 1.如果三个随机数的和大于15&#xff0c;则手气不错&#xff1b;* 2.如果三个随机数的和在10-15之间&#xff0c;手气一般&#xff1b;* 3.如果三个随机数的和1在0以下&#xff0c;手气不太好。*/public class TestIf01 {public static v…...

【跟小嘉学 PHP 程序设计】二、PHP 基本语法

系列文章目录 【跟小嘉学 PHP 程序设计】一、PHP 开发环境搭建 【跟小嘉学 PHP 程序设计】二、PHP 基本语法 文章目录 系列文章目录@[TOC](文章目录)前言一、PHP基本语法1.1、hello,world1.2、PHP语法的其他形式1.2.1、简短形式(了解即可)1.2.2、Script 风格1.2.3、ASP 风格1…...

面试总结之微服务篇

一、概览 1、微服务常用组件 微服务给系统开发带来了诸多问题和挑战&#xff0c;如服务间通信和调用的复杂性、数据一致性和事务管理、服务治理和版本管理等&#xff0c;为解决应对这些问题和挑战&#xff0c;各种微服务组件应运而生微服务的常见组件和实现&#xff1a; 1…...

ElementUI之登陆+注册

一.什么是ElementUI 二.ElementUI完成用户注册登录界面搭建 使用命令npm install element-ui -S&#xff0c;添加Element-UI模块 导依赖 建立登录和注册页面 ​编辑 配置样式 编写登录页面&#xff08;Login&#xff09; 编写注册页面&#xff08;reginter&#xff09; …...

新版kafka可视化界面组件

二、安装kafka可视化客户端工具&#xff08;kafka tool 2&#xff09; 1、下载安装 在官网中找到对应自己电脑系统的版本&#xff1a; kafka Tool2官网下载地址&#xff1a; Offset Explorer 这个方案是为Kafka依赖zookeeper提供的可视化解决方案。 前言 在早期使用kafka的…...

从read()到硬盘:用strace和bpftrace动态追踪Linux内核文件读取的完整路径(附实战脚本)

从read()到硬盘&#xff1a;用strace和bpftrace动态追踪Linux内核文件读取的完整路径&#xff08;附实战脚本&#xff09; 当线上服务出现文件读取延迟时&#xff0c;大多数系统工程师的第一反应是检查磁盘I/O指标。但真正的挑战在于&#xff1a;如何准确定位从用户态系统调用到…...

Intv_AI_MK11 处理时序数据:LSTM 思想在对话状态跟踪中的应用

Intv_AI_MK11 处理时序数据&#xff1a;LSTM 思想在对话状态跟踪中的应用 1. 引言&#xff1a;对话状态跟踪的挑战 在多轮对话系统中&#xff0c;准确跟踪对话状态是核心挑战之一。传统方法往往难以有效捕捉对话历史中的长期依赖关系&#xff0c;导致系统在复杂对话场景中容易…...

OpenClaw技能市场盘点:10个适配Phi-3-mini-128k-instruct的实用工具

OpenClaw技能市场盘点&#xff1a;10个适配Phi-3-mini-128k-instruct的实用工具 1. 为什么需要关注技能市场&#xff1f; 当我第一次在本地部署OpenClaw时&#xff0c;最让我惊喜的不是框架本身&#xff0c;而是它背后那个充满可能性的技能市场。作为一个长期与命令行打交道的…...

S2-Pro跨语言编程能力评测:根据中文注释生成多国语言代码

S2-Pro跨语言编程能力评测&#xff1a;根据中文注释生成多国语言代码 1. 评测背景与目标 在软件开发领域&#xff0c;跨语言编程能力正变得越来越重要。开发者经常需要在不同技术栈间切换&#xff0c;或者将一个语言的算法实现迁移到另一个语言。传统方式下&#xff0c;这需要…...

OpenClaw+千问3.5-9B实战:自动生成技术博客并本地存储

OpenClaw千问3.5-9B实战&#xff1a;自动生成技术博客并本地存储 1. 为什么需要自动化写作助手 作为一个技术博主&#xff0c;我经常面临这样的困境&#xff1a;明明积累了大量实践经验&#xff0c;却总被写作流程消耗精力。从构思大纲到填充内容&#xff0c;再到调整格式和插…...

嵌入式工程师职业发展:原厂与方案商技术深度对比

1. 嵌入式工程师的职业抉择&#xff1a;原厂与方案商深度对比最近一位工作三年的嵌入式工程师朋友分享了他的求职经历&#xff0c;让我感触颇深。他在方案商做了三年应用开发后&#xff0c;最终选择跳槽到芯片原厂。这个决定背后&#xff0c;反映了很多嵌入式工程师都会面临的职…...

别再硬记索引了!Mujoco Python API实战:用`name`属性优雅读写机器人关节状态

别再硬记索引了&#xff01;Mujoco Python API实战&#xff1a;用name属性优雅读写机器人关节状态 在机器人仿真开发中&#xff0c;我们常常陷入这样的困境&#xff1a;面对一个20自由度的机械臂&#xff0c;需要反复查阅文档确认data.qpos[12]对应的是哪个关节&#xff1b;当X…...

ADC类型解析与选型指南:从闪存到ΔΣ

1. ADC基础概念与核心原理在电子系统中&#xff0c;模拟信号到数字信号的转换&#xff08;ADC&#xff09;是实现物理世界与数字世界交互的关键桥梁。作为一名嵌入式开发者&#xff0c;我经常需要根据项目需求选择不同类型的ADC拓扑结构。让我们先拆解ADC的核心工作机制。ADC转…...

proxy-GS:vulkan编译(记录)

文章目录第一阶段&#xff1a;干净的基准环境配置第二阶段&#xff1a;核心 CUDA 算子安装第三阶段&#xff1a;代码“外科手术”&#xff08;解决 API 不匹配&#xff09;第四阶段&#xff1a;Vulkan 后端终极编译第五阶段&#xff1a;漫游验证Proxy-GS 的配置vulkan流程。看到…...

LLMKG+ 知识图谱改进实战指南(非常详细),大模型提升质量与覆盖从入门到精通,收藏这一篇就够了!

LLMKG&#xff0b;: Systematically improving knowledge quality and coverage in KGs using LLMs – A case study in medical domain 摘要 本文提出了LLMKG框架&#xff0c;首次系统性地解决了知识图谱中三元组级别的语义冗余问题。该框架结合检索增强生成与分层扩展过滤机…...