private void jtext1ActionPerformed(java.awt.event.ActionEvent evt)
{
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
String filename = f.getAbsolutePath();
try
{
FileReader reader = new FileReader(filename);
BufferedReader br = new BufferedReader(reader);
jtext1.read(br, null);
br.close();
jtext1.requestFocus();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
}
我尝试在 JButton 中运行此代码,同时为应用程序创建功能并不断收到错误消息:
找不到符号符号:方法read(bufferedreader,)位置:jbutton类型的变量jtext1
最佳答案
您收到该错误是因为您从 JButton
调用 read()
方法,但按钮不读取文件 - 它们所做的只是单击事件时引发事件,以便您可以运行其他代码作为响应。
您应该做的是在 br
上调用 read()
,这是您的 BufferedReader
。我不确定您为什么尝试将 BufferedReader 的实例传递给自身,但这些不是 read()
的参数。需要。即使您在正确的对象上调用该方法,它也会失败并出现不同的错误。
通常,您会使用 readLine()
方法,顾名思义,它读取整行文本,允许您逐行处理文件,而无需告诉代码每次读取要处理多少字节的数据。
你想做这样的事情:
private void jtext1ActionPerformed(java.awt.event.ActionEvent evt)
{
// Your FileChooser code should live in a separate method. If the user
// selects the FileChooser from a menu, then create an event handler for
// that menu item.
try
{
FileReader reader = new FileReader(filename);
BufferedReader br = new BufferedReader(reader);
String line = "";
while((line = br.readLine()) != null)
{
// Do whatever you want with the line.
// You can add it to an arraylist
// or you can split() it into parts
// or you can just print it to screen. Whatever.
}
br.close();
// this line is probably unnecessary, but ultimately, not harmful
jtext1.requestFocus();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
}
关于java - .read ERROR : cannot find symbol symbol: method read(bufferedreader, <null>) 位置: jbutton 类型的变量 jtext1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59038601/