這是因為訪問的文件地址是文件夾而不是,具體的文件,把路徑改為具體的文件就可以了。
參考文章: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(); } }