关于BufferedReader /writer和FileDialog

来源:互联网 发布:2017免流源码 编辑:程序博客网 时间:2024/06/06 18:36
package hxy.widget.com;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.JFrame;public class AboutDialog extends JFrame implements ActionListener {/** *  */private static final long serialVersionUID = 5210678447574536145L;private FileDialog filedialog_save, filedialog_load;private MenuBar menubar;//菜单栏private Menu menu;//菜单private MenuItem itemOpen, itemSave;//菜单项private TextArea text;//文本域private BufferedReader in;//从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。private FileReader file_reader;//用于读取字符流。要读取原始字节流,请考虑使用 FileInputStreamprivate BufferedWriter out;//将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 private FileWriter file_writer;//用来写入字符文件的便捷类public AboutDialog() {super("打开/保存");setSize(800, 600);setVisible(true);menubar = new MenuBar();menu = new Menu("文件");itemOpen = new MenuItem("打开文件");itemSave = new MenuItem("保存文件");itemOpen.addActionListener(this);itemSave.addActionListener(this);menu.add(itemOpen);menu.add(itemSave);menubar.add(menu);setMenuBar(menubar);filedialog_save = new FileDialog(this, "保存文件",FileDialog.SAVE);filedialog_load = new FileDialog(this, "打开文件",FileDialog.LOAD);filedialog_save.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {filedialog_save.setVisible(false);}});filedialog_load.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {filedialog_load.setVisible(false);}});addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});text = new TextArea("文本域。。");add(text, BorderLayout.CENTER);}public void actionPerformed(ActionEvent e) {if (e.getSource() == itemOpen) {filedialog_load.setVisible(true);text.setText(null);//清除文本域String s;if (filedialog_load.getFile() != null) {try {File file = new File(filedialog_load.getDirectory(),filedialog_load.getFile());//获得所打开的文件file_reader = new FileReader(file);in = new BufferedReader(file_reader);while ((s = in.readLine()) != null) {//readLine()读取一个文本行text.append(s + '\n');//别忘了换行符}in.close();//关闭该流并释放与之关联的所有资源。file_reader.close();//关闭该流并释放与之关联的所有资源 ,FileReader中的close()继承自InputStreamReader} catch (IOException e2) {}}} else if (e.getSource() == itemSave) {filedialog_save.setVisible(true);if (filedialog_save.getFile() != null) {System.out.print(filedialog_save.getFile());try {File file = new File(filedialog_save.getDirectory(),filedialog_save.getFile());//获得要保存的文件file_writer = new FileWriter(file);out = new BufferedWriter(file_writer);/* * public void write(String s,                   *int off,                   *int len)            *throws IOException            *-------------------------            *s - 要写入的字符串 *off - 开始读取字符处的偏移量 *len - 要写入的字符数  * */out.write(text.getText(), 0, (text.getText()).length());out.close();//关闭该流并释放与之关联的所有资源。file_writer.close();//关闭该流并释放与之关联的所有资源。} catch (IOException e2) {}}}}public static void main(String args[]) {new AboutDialog();}}


 

原创粉丝点击