这是因为访问的文件地址是文件夹而不是,具体的文件,把路径改为具体的文件就可以了。
参考文章:https://blog.csdn.net/w405722907/article/details/78610485
/** * 查看某个文件夹下所有的文件 并删除文件 */ @RestController public class One { /** *查看某个文件夹下所有的文件 * @param args */ public static void main(String[] args) { /*File file1 = new File("D:\e\test.txt"); delete(file1); File file = new File("D:" + File.separator); print(file);*/ //"D:\门头沟国高新2018年度(管委).xlsx" try { download("门头沟国高新2018年度(管委).xlsx"); } catch (IOException e) { e.printStackTrace(); } /* String s = "D:/e/D:/门头沟国高新2018年度(管委).xlsx (文件名、目录名或卷标语法不正确。)"; String substring = s.substring(8, s.length()); System.out.println(substring);*/ } /** * 打印某个文件夹下的所有文件名字 * @param file */ public static void print(File file){ if (file != null){ if (file.isDirectory()){ File[] files = file.listFiles(); if (files != null){ for (int i = 0; i < files.length; i++){ System.out.println(files[i]); } } } } } /** * 删除某个文件 * @param file */ public static void delete(File file){ if (file != null && file.exists()){ boolean delete = file.delete(); System.out.println(delete); } } /** * 下载某个文件 * @param fileName * @throws IOException */ public static void download(String fileName) throws IOException { FileOutputStream fileOutputStream = null; FileInputStream fileInputStream = null; try { fileInputStream = new FileInputStream("D:\" + fileName); fileOutputStream = new FileOutputStream("D:\e\" + fileName); } catch (FileNotFoundException e) { e.printStackTrace(); } BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream); byte[] bytes = new byte[1024]; while (bufferedInputStream.read(bytes) != -1){ bufferedOutputStream.write(bytes); } bufferedOutputStream.flush(); bufferedOutputStream.close(); bufferedInputStream.close(); } }