首页 > 其他分享 >文件读取与查看

文件读取与查看

时间:2024-09-25 15:51:00浏览次数:1  
标签:文件 读取 查看 filePath filename File new response String


一、读取
  
public String setFileName() {
StringBuilder strFile = new StringBuilder();
String filePath = "你的路径";
File directory = new File(filePath);

// 确保路径确实指向一个目录
if (directory.exists() && directory.isDirectory()) {
// 获取目录下的所有文件和子目录
File[] files = directory.listFiles();

if (files != null) {
for (File file1 : files) {
strFile.append(file1.getName()+",");
}
} else {
logger.error("该目录下没有文件或子目录");
}
} else {
logger.error("路径不是一个有效的目录或者不存在");
}
  return strFile.toString();

}



二、查看

@RequestMapping(value = "/view/{filename}", method = RequestMethod.GET)
public void downloadReadOnlyFile(@PathVariable String filename,
HttpServletResponse response) throws Exception {

   String filePath = "路径";
    File file = new File(filePath + fileName);
file.setReadOnly();//只读

if (!file.exists()) {
throw new FileNotFoundException(filename);
}
// 设置响应头 动态设置Content-Type
Path filePathOne = Paths.get(filePath, filename);
MediaType mediaType = MediaType.valueOf(Files.probeContentType(filePathOne));
response.setContentType(String.valueOf(mediaType));

response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");//inline浏览器打开,attachment下载
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");

try {
FileInputStream inputStream = new FileInputStream(file);// 打开文件输入流
ServletOutputStream outputStream = response.getOutputStream();// 获取输出流
// 复制文件内容到响应输出流
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// 关闭流
outputStream.flush();
outputStream.close();
inputStream.close();
} catch (IOException e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
// 可以记录日志或者进行其他错误处理
}
}

标签:文件,读取,查看,filePath,filename,File,new,response,String
From: https://www.cnblogs.com/lt3232696/p/18431383

相关文章

  • vscode中如何设置不显示隐藏文件
    在vscode中,有时候,会显示一些隐藏文件,如何设置让其不显示呢?解决办法例如:我这里有一个.vscode隐藏文件夹,是vscode默认生成的一个配置目录,我想要它不在资源管理器中进行显示。操作步骤:打开文件——首选项——设置,当然你可以用快捷键CTRL+,然后在搜索框输入:files.exclude,添加**/.vscode......
  • 【C#】.ini文件读写
    ///<summary>///读配置文件方法的6个参数:所在的分区(section)、键值、初始缺省值、StringBuilder、参数长度上限、配置文件路径///</summary>///<paramname="section"></param>///<paramname="key"></param>///<paramname=&quo......
  • 【C#】文件读取 -- .xml文件读取
    .xml文件读取与写入[实现效果][实现编程]///<summary>///创建xml配置///</summary>///<paramname="path">path,如:x:\\xxxx\\xxx.xml</param>privatevoidcreateXmlText(stringpath){if(string.IsNullOrEmpty(path))return......
  • Java开发:文件上传和下载
    一、文件上传使用MultipartFile类型接收参数;调用上传有两种方式:方式一:使用curl命令curl-F"file=@/data/filename.txt"http://localhost:8080/upload--verbose方式二:使用html,写一个form表单:同样是POST请求,为何文件上传的功能会慢?其中一个原因是,使用multipart/fo......
  • springboot 工程中 SpringApplication.run方法 可以指定加载"applicationContext.xml"
    在SpringBoot应用程序中,SpringApplication.run()方法默认使用自动配置和基于Java的配置(如使用@Configuration注解的类),而不是传统的XML配置文件(如applicationContext.xml)。SpringBoot的设计理念之一就是简化配置,鼓励使用注解和Java配置来代替XML配置。然而,如果你......
  • python调用另一个.py文件中的类和函数或直接运行另一个.py文件
    同一文件夹下的调用1.调用函数A.py文件如下:defadd(x,y):print('和为:%d'%(x+y))在B.py文件中调用A.py的add函数如下:importAA.add(1,2)或fromAimportaddadd(1,2)2.调用类A.py文件如下:classA:def__init__(self,xx,yy):self.x=xxself.y=y......
  • php中使用FPDF生成PDF文件
    1.下载安装FPDF,可以在官网上下载(http://www.fpdf.org/),下载压缩包后解压,解压后的文件夹命名为“fpdf”。2.创建一个php文件和“fpdf”平级,代码如下<?phprequire('fpdf/fpdf.php');$pdf=newFPDF();$pdf->AddPage();$pdf->SetFont('Arial','B',16);$pdf->Image('......
  • 《腾讯视频》qqlivebase.dll报错怎么回事,几个快速解决腾讯视频qqlivebase.dll文件丢失
    在我们日常的娱乐生活中,腾讯视频无疑是一个备受欢迎的视频播放平台。然而,当你正准备沉浸在精彩的影视内容中时,却突然遭遇qqlivebase.dll报错,这无疑会让人感到十分困扰。那么,qqlivebase.dll报错究竟是怎么回事呢?又有哪些快速解决腾讯视频qqlivebase.dll文件丢失的方法呢?......
  • 《穿越火线》无法正常运行:穿越火线audiere.dll文件丢失的原因及解决办法分享
    在众多精彩刺激的网络游戏中,《穿越火线》以其紧张激烈的战斗场景和丰富多样的玩法,吸引了无数玩家的热爱。不过有玩家在准备玩游戏时却突然发现游戏无法正常运行,提示audiere.dll文件丢失,这无疑会让人感到十分困惑。别着急,下面就让我们一起来探讨穿越火线audiere.dll文件丢失......
  • 如何修复英雄联盟常见dll错误,操作系统提示缺少英雄联盟dll文件的有效解决办法
    在众多热门游戏中,《英雄联盟》以其精彩的竞技性和丰富的玩法深受玩家喜爱。然而,当玩家准备在召唤师峡谷大显身手时,却可能遭遇因操作系统中缺少DLL文件而导致的游戏无法启动等问题,这无疑令人十分困扰。别担心,下面就为大家介绍一些有效解决操作系统中缺少英雄联盟DLL文件的办......