java抓取共享文件夹文件方式由FTP转为共享文件

由于Windows FTP服务器在升级系统后无法启动,本文介绍了如何将Java程序从使用FTP抓取文件转变为通过SMB协议访问共享文件夹。详细讲述了使用jcifs库进行操作的步骤,包括下载jcifs.jar、API调用以及解决权限问题,最终实现成功读取共享文件。
摘要由CSDN通过智能技术生成

  由于生产环境年代久远的Windows7客户机32位系统只支持4G内存,相关功能升级之后内存不足导致功能卡顿,死机的情况,运维重装操作系统升级到了64位 增加了物理内存和虚拟内存。

  BUT...升级系统后,原有windows FTP 服务器无法启动(启动时报错 “出现错误,并非所有的功能被成功更改。”)如图:

  经过网上的方法都没有解决,最后运维说要重装系统...wtf,为了避免麻烦和其他的问题,果断修改代码,发布共享文件夹,改为从共享文件夹读取文件方式。

JAVA从读取共享文件夹方法:

1、通过URL访问本地文件夹文件。

try {
 URL url = new URL("file:\\\\"+ip+path+"/"+fileNAME);
 InputStream is = url.openStream();
 //业务操作
} catch (IOException e) {
    e.printStackTrace();
}

测试环境手动启动项目获取到共享文件并且测试成功。
BUT...发布到正式环境,启动运行,直接报错:java.io.FileNotFoundException&#

Java中,要抓取网页上的所有文件,可以使用URL类和URLConnection类来实现。以下是一个基本的实现示例: ```java import java.io.*; import java.net.*; public class WebPageDownloader { public static void main(String[] args) { String urlString = "http://example.com"; // 替换为目标网页的URL try { URL url = new URL(urlString); URLConnection connection = url.openConnection(); // 设置User-Agent,模拟浏览器请求 connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"); // 获取网页的输入流 InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); // 逐行读取网页内容 String line; while ((line = reader.readLine()) != null) { // 判断是否为文件链接 if (line.contains("<a") && line.contains("href=")) { int startIndex = line.indexOf("href=\"") + 6; int endIndex = line.indexOf("\"", startIndex); String fileUrl = line.substring(startIndex, endIndex); // 排除非文件链接 if (!fileUrl.contains("#")) { // 构建文件的URL URL fileURL = new URL(url, fileUrl); System.out.println("Downloading file: " + fileURL); // 下载文件 InputStream fileInputStream = fileURL.openStream(); FileOutputStream fileOutputStream = new FileOutputStream(fileURL.getFile()); byte[] buffer = new byte[1024]; int length; while ((length = fileInputStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, length); } fileInputStream.close(); fileOutputStream.close(); System.out.println("Download completed!"); } } } reader.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 请注意,这只是一个简单的示例,并未考虑到所有可能的情况,比如特殊字符的处理等。在实际使用中,可能还需要根据具体需要进行一些调整和改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值