import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* IOUtils
*
* @author NSB
*/
public class IOUtils {
/**
* url 转 指定路径文件
*
* @param url
* @param uploadpath 指定路径
* @return
*/
public static String getFileToUrl(String url, String uploadpath) {
URL pathUrl = null;
uploadpath = uploadpath.concat("/temp/");//路径处理
try {
pathUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) pathUrl.openConnection();
//设置超时间为3秒
conn.setConnectTimeout(3 * 1000);
//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//得到输入流
InputStream is = conn.getInputStream();
String fileNaemToUrl = getFileNaemToUrl(url);
uploadpath = uploadpath.concat(fileNaemToUrl);
System.out.println(uploadpath);
File file = new File(uploadpath);
System.out.println(file.getName());
//写入文件到指定路径
copyInputStreamToFile(is, file);
return "temp/".concat(file.getName());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 流输出到文件的方法
*/
private static void copyInputStreamToFile(InputStream inputStream, File file) throws IOException {
try (FileOutputStream outputStream = new FileOutputStream(file)) {
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
}
}
/**
* 文件路径封装
*
* @param url
* @return
*/
private static String getFileNaemToUrl(String url) {
//通过url获取文件名(带后缀)
String fileName = url.substring(url.lastIndexOf("/") + 1);
//去掉后缀
String file = fileName.substring(0, fileName.lastIndexOf("."));
//获取后缀
String fileSuffixToFileName = getFileSuffixToFileName(fileName);
//文件名加上时间戳
file = file + "_" + System.currentTimeMillis();
//加上后缀
fileName = file.concat(".").concat(fileSuffixToFileName);
return fileName;
}
/**
* 获取后缀
*
* @param fileName
* @return
*/
private static String getFileSuffixToFileName(String fileName) {
String FileSuffix = fileName.substring(fileName.lastIndexOf(".") + 1);
return FileSuffix;
}
}
通过Url获取文件并存储到指定路径
于 2023-02-23 13:24:56 首次发布