SQLの窓

2020年10月27日


Java : WEB上のテキストファイルを取得する

キャラクタセットを指定してテキストとして取得

テキストファイルの入出力はこちらを参照して下さい。 InputStream の扱いはテキストファイルを基本に考えれば良いと思います。 WEB 上のデータも結局 InputStream で取得しています。
import java.net.*;
import java.io.*;

public class Main {

	public static void main(String[] args) {

		try {

			// 書き込みファイル名
			String filename = "index.html";
			// テキストで書き込み為の俊美
			BufferedWriter bw = new BufferedWriter(
					new OutputStreamWriter(
						new FileOutputStream(filename), "UTF8"
					) 
			);			

			// URL文字列
			String str = "https://lightbox.sakura.ne.jp/demo/template/basic/basic-html/req/basic-req-2div.html";
			// ターゲット
			URL url = new URL( str );
			// 接続オブジェクト
			HttpURLConnection http = (HttpURLConnection)url.openConnection();
			// GET メソッド 
			http.setRequestMethod("GET");
			// 接続 
			http.connect();
			 
			// UTF-8 でリーダーを作成
			InputStreamReader isr = new InputStreamReader(http.getInputStream(), "utf8");   
			// 行単位で読み込む為の準備   
			BufferedReader br = new BufferedReader(isr);   
			String line_buffer;   
			// BufferedReader は、readLine が null を返すと読み込み終了   
			while ( null != (line_buffer = br.readLine() ) ) {   
				// 書き込み
				bw.write( line_buffer + "\r\n" );
			}
 
			// 閉じる   
			br.close();		// BufferedReader
			isr.close();	// InputStreamReader
			http.disconnect();		// HttpURLConnection
			bw.close();		// BufferedWriter

		}
		catch( Exception e ) {
			System.out.println( e.getMessage() );
		}
	}
}

バイナリデータとしてそのままファイル化したものを使う

単純にダウンロードするだけならば、キャラクタセットを考慮する必要はありません
import java.net.*;
import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) {

		byte[] buffer = new byte[4096];
		int readByte = 0;

		try {
			// ターゲット
			URL url = new URL("https://lightbox.sakura.ne.jp/demo/template/basic/basic-html/req/basic-req-2div.html");
			// 接続オブジェクト
			HttpURLConnection http = (HttpURLConnection)url.openConnection();
			// GET メソッド 
			http.setRequestMethod("GET");
			// 接続 
			http.connect();
			
			DataOutputStream dataOutStream =
			new DataOutputStream(
				new BufferedOutputStream(
					new FileOutputStream("index.html")));			

			BufferedInputStream bis = new BufferedInputStream(http.getInputStream() );   
			// 行単位で読み込む為の準備   
			DataInputStream dis = new DataInputStream(bis);   

			while ( -1 != (readByte = dis.read(buffer) ) ) {   
				// コマンドプロンプトに表示   
				dataOutStream.write(buffer, 0, readByte);
			}

			// 各々受け持ちクラスを閉じる   
			dis.close();
			bis.close();
			
			dataOutStream.close();

			http.disconnect();
		}
		catch( Exception e ) {
			
		}
	}
}



関連するドキュメント

サポートされるエンコーディング ( JDK 11 )
posted by lightbox at 2020-10-27 21:44 | java : 通信関連 | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり