FileReaderクラスのコンストラクタに読み込むファイルのパスを指定し、FileReaderクラスのインスタンスを作成します。
BufferedReaderクラスのコンストラクタにFileReaderクラスのインスタンスを指定し、BufferedReaderクラスのインスタンスを作成します。
BufferedReaderクラスのreadLineメソッドを使用してファイルから1行づつ文字を読み込みます。
readメソッドはファイルの終わりに達するとnullを返します。
package FileAccess;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReadSample04 extends Frame implements ActionListener{
private static final long serialVersionUID = 1L;
public static void main(String args[]){
new FileReadSample04();
}
Frame frm = this;
TextArea txtBody;
Button btnOpen;
public FileReadSample04(){
this.setTitle("FileReadSample04");
this.setSize(300,300);
txtBody = new TextArea();
this.add(txtBody,BorderLayout.CENTER);
btnOpen = new Button("Load");
btnOpen.addActionListener(this);
Panel pnl = new Panel();
pnl.add(btnOpen);
this.add(pnl,BorderLayout.SOUTH);
this.setVisible(true);
}
public void actionPerformed(ActionEvent ev){
OpenFile();
}
/*
* ファイルを開きます。
*/
private void OpenFile(){
//ファイルを開くダイアログを表示します。
String path = null;
FileDialog fd = new FileDialog(this , "ファイルを開く" , FileDialog.LOAD);
try{
fd.setVisible(true);
if (fd.getFile() != null){
path = fd.getDirectory() + fd.getFile();
}
}finally{
fd.dispose();
}
//ファイルパスがnullの場合は処理を中止します。
if (path == null){
return;
}
//ファイルから1行づつ読み込みます。
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(path);
br = new BufferedReader(fr);
StringBuilder sb = new StringBuilder();
String str;
while((str = br.readLine()) != null){
sb.append(str +"\r\n");
}
txtBody.setText(sb.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
try {
if (br != null){
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
0 件のコメント:
コメントを投稿