나는 (내가 Josh M에, here에서 학점을했다)pdf 파일과 non pdf 파일을 구별하는 방법은 무엇입니까?
public final class FileDownloader {
private FileDownloader(){}
public static void main(String args[]) throws IOException{
download("http://pdfobject.com/pdf/sample.pdf", new File("sample.pdf"));
}
public static void download(final String url, final File destination) throws IOException {
final URLConnection connection = new URL(url).openConnection();
connection.setConnectTimeout(60000);
connection.setReadTimeout(60000);
connection.addRequestProperty("User-Agent", "Mozilla/5.0");
final FileOutputStream output = new FileOutputStream(destination, false);
final byte[] buffer = new byte[2048];
int read;
final InputStream input = connection.getInputStream();
while((read = input.read(buffer)) > -1)
output.write(buffer, 0, read);
output.flush();
output.close();
input.close();
}
}
그것은 PDF 파일과 함께 완벽하게 작동 PDF 파일을 다운로드하려면 다음 코드를 사용했다. 그러나 "잘못된 파일"이 발견되어서 ... 그 파일의 확장자가 무엇인지 모르겠지만 while((read = input.read(buffer)) > -1)
의 무한 루프에 빠진 것처럼 보입니다. 부적절한 파일 (비 pdfs)을 버리기 위해이 스 니펫을 개선하려면 어떻게해야합니까?
* pdf 파일과 완벽하게 작동합니다. 그러나, "나쁜 파일"*을 만났을 때 - 이것이 정말로 PDF 또는 PDF의 문제인지 여부를 확인 했습니까? 이러한 상황에서 대상 파일의 내용을 확인 했습니까? – mkl