1 ApiOperation(value = "下载文件", httpMethod = "GET", notes = "downloadFile", response = String.class) 2 public String downloadFile(HttpServletRequest request, HttpServletResponse response) { 3 String fileName = "zabbix.txt";// 设置文件名 4 if (fileName != null) { 5 //设置文件路径 6 // String realPath = "D://zabbix_agentd.conf"; 7 String realPath = "D:" + File.separator + "zabbix_agentd.conf"; 8 File file = new File(realPath , fileName); 9 if (file.exists()) { 10 response.setContentType("application/force-download");// 设置强制下载不打开 11 response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 设置文件名 12 byte[] buffer = new byte[1024]; 13 FileInputStream fis = null; 14 BufferedInputStream bis = null; 15 try { 16 fis = new FileInputStream(file); 17 bis = new BufferedInputStream(fis); 18 OutputStream os = response.getOutputStream(); 19 int i = bis.read(buffer); 20 while (i != -1) { 21 os.write(buffer, 0, i); 22 i = bis.read(buffer); 23 } 24 System.out.println("success"); 25 26 InetAddress addr = InetAddress.getLocalHost(); 27 String ip=addr.getHostAddress(); //获取本机ip 28 replacTextContent(ip); 29 } catch (Exception e) { 30 e.printStackTrace(); 31 } finally { 32 if (bis != null) { 33 try { 34 bis.close(); 35 } catch (IOException e) { 36 e.printStackTrace(); 37 } 38 } 39 if (fis != null) { 40 try { 41 fis.close(); 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } 45 } 46 } 47 } 48 } 49 return null; 50 } 51 /** 52 * 替换文本文件中的 指定字符串 53 * @param path 54 * @throws IOException 55 */ 56 public void replacTextContent(String ip){ 57 try { 58 File file = new File("D:zabbix_agentd.conf"); 59 String content = FileUtils.readFileToString(file, "utf-8"); 60 //原有的内容 61 String srcStr = "Hostname=192.168.1.177"; 62 //要替换的内容 63 String replaceStr ="Hostname"+ ip; 64 // 读 65 FileReader in = new FileReader(content); 66 BufferedReader bufIn = new BufferedReader(in); 67 // 内存流, 作为临时流 68 CharArrayWriter tempStream = new CharArrayWriter(); 69 // 替换 70 String line = null; 71 while ( (line = bufIn.readLine()) != null) { 72 // 替换每行中, 符合条件的字符串 73 line = line.replaceAll(srcStr, replaceStr); 74 // 将该行写入内存 75 tempStream.write(line); 76 // 添加换行符 77 tempStream.append(System.getProperty("line.separator")); 78 } 79 // 关闭 输入流 80 bufIn.close(); 81 // 将内存中的流 写入 文件 82 FileWriter out = new FileWriter(file); 83 tempStream.writeTo(out); 84 out.close(); 85 }catch (Exception e) { 86 e.printStackTrace(); 87 } 88 }