1.报错场景:
其中的 ip2region.xdb 文件是放在 resources 文件夹中的,然后在一个工具类里面读取这个文件,在开发环境中的是这样读取的:
ClassPathResource resource = new ClassPathResource("ip2region.xdb"); //获取真实文件路径 String path = resource.getURL().getPath(); byte[] cBuff = Searcher.loadContentFromFile(path);然后部署到linux上后,就出现了错误,报 java.io.FileNotFoundException
2.解决方法:
ClassPathResource resource = new ClassPathResource("ip2region.xdb"); InputStream inputStream = resource.getInputStream(); byte[] bytes = IOUtils.toByteArray(inputStream);在部署环境,要使用 InputStream inputStream = resource.getInputStream(); 这个方法
3.用java读取linux系统上的指定文件
File file = new File("/usr/webapps/MP/ip2region.xdb"); if (file.exists()) { System.out.println("文件存在"); } else { System.out.println("文件不存在"); } if (file.isFile()) { System.out.println("是一个文件"); } else { System.out.println("不是一个文件"); } if (file.canRead()) { System.out.println("可读"); } else { System.out.println("不可读"); } if (file.canWrite()) { System.out.println("可写"); } else { System.out.println("不可写"); }
文章讲述了在开发环境中使用ClassPathResource读取ip2region.xdb文件的常见做法,以及在部署Linux时遇到FileNotFoundException的问题。解决方法是改用InputStream从指定路径读取文件。还介绍了如何检查Linux系统上的文件存在性、类型和权限。


8689

被折叠的 条评论
为什么被折叠?



