2012-09-14 5 views
0

자바를 사용하고 있으며 현재 인터넷에서 텍스트 파일을 다운로드하고 해당 파일을 읽고 Scanner으로 파일을 보낼 수 있습니다. 하드 드라이브에 쓰는 것을 건너 뛰고 스캐너에 곧바로 보낼 수 있습니까? 코드를 변경하려고 시도했지만 작동하지 않았습니다.URL에서 스캐너로 직접 텍스트 파일 보내기

URL link = new URL("http://shayconcepts.com/programming/ComicDownloader/version.txt"); 
ReadableByteChannel rbc = Channels.newChannel(link.openStream());//Gets the html page 
FileOutputStream fos = new FileOutputStream("version.txt");//Creates the output name of the output file to be saved to the computer 
fos.getChannel().transferFrom(rbc, 0, 1 << 24); 
fos.close(); 
Scanner sc = new Scanner(new FileReader("version.txt")); 
+2

예. [Scanner API] (http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html)를 살펴 보셨습니까? 모든 것이 있습니다. InputStream을 사용하는 3 번째 생성자를 확인하십시오. URL은 스트림으로 열 수 있습니다 - [URL API] (http://docs.oracle.com/javase/7/docs/api/java/net/URL.html)도 확인하십시오! –

답변

2

예, 가능합니다. 그냥 정확하게 말했듯이 : URL을 얻은 입력 스트림을 스캐너에 직접 입력하십시오.

Scanner sc = new Scanner(link.openStream()); 

또한 constructor taking an input stream입니다. charset as 2nd argument의 방식으로 허용됩니다. 텍스트 파일이 플랫폼 기본값과 다른 문자 인코딩에있을 가능성이있는 경우 사용할 수 있습니다. 그렇지 않으면 Mojibake이 표시 될 수 있습니다.

Scanner sc = new Scanner(link.openStream(), "UTF-8"); 
+0

완벽한! 감사! –