読者です 読者をやめる 読者になる 読者になる

(O+P)ut

IT系の記事やその他諸々,不定期で更新していきます(∵)

【Java】APIリクエストでファイルを取得する

テクノロジー Java

APIリクエストってのはWeb APIのことですね.
HTTPをベースにしてデータをやり取りするので,一般的にはWebサイトへのアクセスを行うようにブラウザを用いて操作を行います.
例えば,今回の場合ではURLを入力してGETメソッドでアクセスする*1ことで,csvファイルをアクセスできるという状況が既にあります.

そんな中で例えば「日付でURLが分かれているファイルを一気に取得したい」であったり「csvファイルの特定の項を編集しながら保存したい」といったようなことをする必要もありますよね.自分はそのような状況だったので,Javaを使ってcsvファイルを取得する方法について記述します.*2

簡単なサンプルコードは以下になります.

URL url;
try {
	String url_s = "[アクセスするURL]";
	url = new URL(url_s);
	URLConnection conn;
	conn = url.openConnection();
	InputStream in = conn.getInputStream();
	BufferedReader br = new BufferedReader(new InputStreamReader(in));
	String line;
	while ((line = br.readLine()) != null) {
		System.out.println(line);
	}
	br.close();
} catch (MalformedURLException e) {
	e.printStackTrace();
}
catch (IOException e) {
	e.printStackTrace();
}

今回は一行ずつlineを標準出力していますが,必要に応じてファイルに保存します.
また,csvファイルの各項を取り出したいのなら

token = new StringTokenizer(line, ",");
while (token.hasMoreTokens())
{
   //処理を書く
         //token.nextToken()で項を順に取得
}

をline毎に行います.

備忘録でした!

*1:要は普通にWebブラウザを使ってアクセスする

*2:おそらく他の言語ならもっと簡単?