|
最近リファレンスを読み直して再復習です。
●テキストファイルI/Oのサンプル
import java.io.*;
public String readFile(String inFileName){
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream(inFileName), "EucJP") );
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(outFileName), "EucJP") );
while(true){
String buf = reader.readLine();
if(buf == null) break;
writer.write(buf); writer.newLine(); /* ←改行する */
}
reader.close();
writer.close();
} catch(IOException ex){
out.println("おおっと:" + ex.toString());
ex.printStackTrace();
return 2;
}
}
|
●URLからのテキスト入力のサンプル
import java.io.*;
import java.net.*;
String readURL(){
String urlstr = "http://www.abc.def.co.jp/";
URL url;
try {
url = new URL(urlstr);
} catch(MalformedURLException ex){
out.println("おおっと:" + ex.toString());
ex.printStackTrace();
return 1;
}
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(url.openStream(), "EucJP") );
while(true){
String buf = reader.readLine();
if(buf == null) break;
/* buf を使って何か処理をします */
}
reader.close();
} catch(IOException ex){
out.println("おおっと:" + ex.toString());
ex.printStackTrace();
return 2;
}
}
|
とあるオープンソースのクラスライブラリに含まれていたコードから教えてもらった、
StringWriterクラスの使用例です。
テキストファイルの内容全体を文字列として読み込むときに便利な使い方です。
import java.io.*;
public class WholeFileReader2 {
/**
* テキストファイルの内容を一気に読んで、出力します。
*/
public static String readFile(String fileName)
throws IOException, FileNotFoundException, UnsupportedEncodingException
{
BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream(fileName), "JISAutoDetect") );
/* Shift_JIS、EucJPなども使えます。*/
StringWriter sout = new StringWriter();
PrintWriter pout = new PrintWriter(sout);
String tempLine;
while((tempLine = reader.readLine()) != null) {
pout.println(tempLine);
}
pout.flush();
reader.close();
return sout.toString();
}
public static void main(String[] args) throws Exception {
if(args.length != 1){
System.err.println("usage: java WholeFileReader filename");
System.exit(1);
}
System.out.println(WholeFileReader2.readFile(args[0]));
}
}
/* end. */
|
(first uploaded 2002/05/29 last updated 2002/08/04, Urano398 - KQ Taura)
|