如果你也遇到和我一样使用newFile本地文件可以通过,可是一旦路径变成http的绝对路径就会报找不到文件的错误,可以用下面的方式来解决
啥都不多说,具体解决方式如下(亲测有效)
public getAllFieldByExcel(String filePath) {
URL url = null;
HttpURLConnection connection = null;
InputStream inputStream = null;
try {
url = new URL(filePath);
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
connection = (HttpURLConnection) url.openConnection();
// 设置连接方式:get
connection.setRequestMethod("GET");
// 设置连接主机服务器的超时时间:15000毫秒
connection.setConnectTimeout(150000000);
// 设置读取远程返回的数据时间:60000毫秒
connection.setReadTimeout(600000000);
// 发送请求
connection.connect();
// 通过connection连接,获取输入流
if (connection.getResponseCode() == 200) {
inputStream = connection.getInputStream();
}
// 根据指定的文件输入流导入Excel从而产生Workbook对象
Workbook wb = null;
if (fileType.toLowerCase().equals("xls")) {
wb = new HSSFWorkbook(inputStream);
} else {
wb = new XSSFWorkbook(inputStream);
}
// 获取Excel文档中的第一个表单
Sheet sheet = wb.getSheetAt(0);
if (endDataRow == null) {
endDataRow = sheet.getLastRowNum();
}
//此处已经可以写你的具体逻辑了
} catch (FileNotFoundException fileNotFoundException) {
fileNotFoundException.printStackTrace();
return ReturnUtils.NOErrorMsg("找不到文件");
} catch (IOException ioException) {
ioException.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
return ReturnUtils.NOErrorMsg(e.toString());
}finally{
//远程连接记得关闭
if (null != inputStream) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
connection.disconnect();// 关闭远程连接
}
return “”;
}
最后我也没搞懂,为什么new File的时候本地文件没有问题,可是远程文件就会报错。先找到解决办法,以后再想吧,如果有知道原因的网友,欢迎评论区为我解惑,谢谢
文章来源地址https://www.toymoban.com/news/detail-601774.html
文章来源:https://www.toymoban.com/news/detail-601774.html
到了这里,关于newFile()一个http绝对路径的文件报文件找不到错误的解决方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!