//TestBufferedStream.javapackage ch12.other;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;public class TestBufferedStream extends JFrame{private JButton jb1=new JButton("浏览...");private JButton jb2=new JButton("打开");private JTextField jtf=new JTextField();private JTextArea jta=new JTextArea();//打开的文件对象private File f=null;public TestBufferedStream(){Container c=this.getContentPane();//将文本区加入到带滚动条的窗格中JScrollPane jsp=new JScrollPane(jta);c.add(jsp);JPanel p1=new JPanel();p1.setLayout(new BorderLayout());p1.add(new JLabel("文件名"),BorderLayout.WEST);p1.add(jtf);JPanel p2=new JPanel();p2.add(jb1);p2.add(jb2);p1.add(p2,BorderLayout.EAST);c.add(p1,BorderLayout.SOUTH);Listener l=new Listener();//按下按钮和在文本域中按下回车都会触发事件jb1.addActionListener(l);jb2.addActionListener(l);jtf.addActionListener(l);}class Listener implements ActionListener{public void actionPerformed(ActionEvent e){//按下浏览按钮后,弹出打开文件对话框if(e.getSource()==jb1)openFile();//按下打开按钮后,在文本区内显示文件内容if(e.getSource()==jb2)showFile();//在文本区中输入文件名,按下回车按钮会打开相应文件if(e.getSource()==jtf){f=new File(jtf.getText());showFile();}}}private void openFile(){JFileChooser jfc=new JFileChooser();//如果用户选择了文件并按下确定按钮,就将文件名显示在文本域中if(jfc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){f=jfc.getSelectedFile();jtf.setText(f.getAbsolutePath());jta.setText("");}}private void showFile(){//如果用户既没有选择文件也没有输入文件名,则弹出对话框报错if(f==null && jtf.getText().equals(""))JOptionPane.showMessageDialog(this,"请选择要打开的文件","错误消息",JOptionPane.ERROR_MESSAGE);else{//如果用户是直接在文本域中输入的文件名,则创建文件对象if(f==null)f=new File(jtf.getText());try{BufferedReader br=new BufferedReader(new FileReader(f));String s;//一次从文件中读入一行,添加到文本区中while((s=br.readLine())!=null)jta.append(s+'\n');br.close();f=null;}catch(FileNotFoundException e){JOptionPane.showMessageDialog(this,"您要打开的文件不存在","错误消息",JOptionPane.ERROR_MESSAGE);}catch(IOException e){System.out.println(e.getMessage());}}}public static void main(String[] args){TestBufferedStream tbs=new TestBufferedStream();tbs.setTitle("用缓冲流读文件...");tbs.setSize(400,300);tbs.setVisible(true);tbs.setDefaultCloseOperation(3);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。