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 件のコメント:
コメントを投稿