zoukankan      html  css  js  c++  java
  • Java 读取linux上的文件

    今天遇到一个问题,在Windows环境上开发,测试环境和正式环境服务器都是linux;

    一个导出表格的功能,在本地没问题,发布到linux服务器就报找不到文件问题,但是模板文件已经在linux下了。刚开始以为是模板放的路径错了,,确认好几遍还是有问题。

    经过大神的指导,最后发现原来linux文件的文字编码都是UTF-8。

    而我们一般的读取文件的方法:

      response.setContentType("multipart/form-data");
      response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));//设置网页显示的文件编码
      File file = new File(path);

    这里没有指定读取文件编码的情况下,可能是拿不到文件的.

    方法一:

      response.setContentType("multipart/form-data"); 
      response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));//设置网页显示的文件编码
      File file = new File( new String(path.getBytes("utf-8"), "utf-8"));

    以UTF-8编码去读取文件就可以拿到了。

    方法二:

      读取文件路径不能有中文,就能避免此问题。

    最后为了和系统其它模块保持一致,我用了第二种方法。用uuid来保存模板的文件名,同时每个模板数据库都需要保存一条记录。

  • 相关阅读:
    Beta 冲刺(1/7)
    福大软工 · BETA 版冲刺前准备(团队)
    福大软工 · 第十一次作业
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    个人作业——软件工程实践总结作业
    Beta 答辩总结
    Beta 冲刺 (7/7)
    Beta 冲刺 (6/7)
  • 原文地址:https://www.cnblogs.com/xiaomai333/p/8366532.html
Copyright © 2011-2022 走看看