关于BufferedReader /writer和FileDialog

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;//用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream private 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(); } }


 

转载于:https://www.cnblogs.com/myittec/archive/2011/12/05/2392783.html

Java中的FileDialog类是用于创建文件对话框的类,它可以让用户选择一个或多个文件,或者指定一个文件保存路径。该类继承自Dialog类,因此可以使用Dialog类的所有方法和属性。 以下是一个使用FileDialog类的示例: ```java import java.awt.*; import java.awt.event.*; import java.io.*; public class FileDialogExample extends Frame implements ActionListener { private TextArea textArea; private Button openButton; private Button saveButton; public FileDialogExample() { super("FileDialog Example"); textArea = new TextArea(); add(textArea, BorderLayout.CENTER); openButton = new Button("Open"); openButton.addActionListener(this); add(openButton, BorderLayout.WEST); saveButton = new Button("Save"); saveButton.addActionListener(this); add(saveButton, BorderLayout.EAST); setSize(400, 300); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == openButton) { FileDialog dialog = new FileDialog(this, "Open File", FileDialog.LOAD); dialog.setVisible(true); String filePath = dialog.getDirectory() + dialog.getFile(); File file = new File(filePath); try { BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { textArea.append(line + "\n"); } reader.close(); } catch (IOException ex) { ex.printStackTrace(); } } else if (e.getSource() == saveButton) { FileDialog dialog = new FileDialog(this, "Save File", FileDialog.SAVE); dialog.setVisible(true); String filePath = dialog.getDirectory() + dialog.getFile(); File file = new File(filePath); try { BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write(textArea.getText()); writer.close(); } catch (IOException ex) { ex.printStackTrace(); } } } public static void main(String[] args) { new FileDialogExample(); } } ``` 在这个示例中,我们创建了一个带有文本区域、打开按钮和保存按钮的窗口。当用户点击打开按钮时,我们创建一个FileDialog对象,设置对话框的标题为“Open File”,对话框的模式为LOAD(表示用户可以选择一个或多个文件),并显示对话框。用户选择文件后,我们读取文件的内容,并将其显示在文本区域中。 当用户点击保存按钮时,我们创建一个FileDialog对象,设置对话框的标题为“Save File”,对话框的模式为SAVE(表示用户可以指定一个保存路径),并显示对话框。用户指定保存路径后,我们将文本区域中的内容写入一个文件中。 通过这个示例,我们可以看到FileDialog类的基本用法,它可以方便地让用户选择文件,或者指定文件的保存路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值