PDF格式文件转化byte数组
1)URL地址方式PDF
import java.io.*;
import java.net.*;
public class DownloadPdf {
/**
* 从网络Url中下载文件
* @param urlStr
* @throws IOException
*/
public static byte[] downLoadByUrl(String urlStr) throws IOException {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置超时间为5秒
conn.setConnectTimeout(5*1000);
//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//得到输入流
InputStream inputStream = conn.getInputStream();
//获取自己数组
byte[] getData = readInputStream(inputStream);
if(inputStream!=null){
inputStream.close();
}
return getData;
}
/**
* 从输入流中获取字节数组
* @param inputStream
* @return
* @throws IOException
*/
public static byte[] readInputStream(InputStream inputStream) throws IOException {
byte[] buffer = new byte[inputStream.available()];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len = inputStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.close();
return bos.toByteArray();
}
}
2) 指定目录下PDF
/**
* 将pdf文件转为byte数组
* @param filePath
* @return
*/
public static byte[] convertPdfToByte(String filePath){
byte[] pdfBytes = null;
try{
//把指定文件内容写入缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath));
// 以字节流的长度大小来定义数组大小
pdfBytes = new byte[bis.available()];
//将pdf内容放到byte数组中
bis.read(pdfBytes);
//关闭文件流
bis.close();
}catch (IOException e){
e.printStackTrace();
}
return pdfBytes;
}