relax_cat_another 2015-09-07 10:39 采纳率: 75%
浏览 1375
已采纳

这段代码为什么无法实现写入和读取,求解答,谢谢!

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;
import java.io.*;
public class Filetest4 extends JFrame{
public static JTextArea getjt(){
JTextArea jt=new JTextArea();
return jt;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame jf=new JFrame();
Container c=jf.getContentPane();

    JScrollPane js=new JScrollPane();
    js.setViewportView(getjt());
    JButton open=new JButton("写入文件");
    open.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            File file=new File("word.txt");
            try{
                FileWriter out=new FileWriter(file);
                String s=getjt().getText();
                out.write(s);
                out.close();
            }catch(Exception o){
                o.printStackTrace();
            }
        }
    });
    JButton close=new JButton("读取文件");
    close.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            File file=new File("word.txt");
            try{
                FileReader in=new FileReader(file);
                char[] ch=new char[1024];
                int len=in.read(ch);
                getjt().setText(new String(ch,0,len));
                in.close();
            }catch(Exception o){
                o.printStackTrace();
            }
        }
    });
    JPanel jp=new JPanel(new FlowLayout());
    jp.add(open);
    jp.add(close);
    c.setLayout(new BorderLayout());
    c.add(js,BorderLayout.CENTER);
    c.add(jp,BorderLayout.SOUTH);
    jf.setSize(200,200);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


}

}

  • 写回答

1条回答 默认 最新

  • 纵横车 2015-09-07 12:04
    关注

    因为你每次getjt()的时候都是new一个JTextArea,新new的JTextArea里面没有输入,所以取出来的字符串是空,所以无法写入文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 python验证码滑块图像识别
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)