我正在尝试从文本文件中读取文本,并且我已经可以使用 system.out.print 在系统上打印它。但是,如果我根据在文本文件中读取的文本设置 JTextArea 的文本,则会显示“线程“main”java.lang.NullPointerException 中的异常”。它实际上在打印行中运行良好,我已经可以阅读我想要的内容,但是我无法将此文本放在 JTextArea
上。我应该怎么办?
这是我的代码:
package mdiforms;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class trylang extends javax.swing.JInternalFrame {
/** Creates new form trylang */
public trylang() {
initComponents();
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
BufferedReader br = null;
String path = "C:/Users/Pasusani/Desktop/tawa.txt";
try {
// change this value
FileInputStream fis = new FileInputStream(path);
br = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
String CurrentLine;
while ((CurrentLine = br.readLine()) != null) {
processLine(CurrentLine);
}
} finally {
if (br != null) br.close();
}
}
public static void processLine(String line) {
// skip header & footer
//if (line.startsWith("127.0.1.1/dev/sda1")) return;
String name = line.substring(0, 1);
String year = line.substring(0, 5);
System.out.print("Name [" + name + "]\t Year [" + year +"]");
String ewan = "Name [" + name + "]\t Year [" + year +"]";
txt_try.setText(ewan);
}
}
最佳答案
processLine
是一个 static
方法,在这里我想您需要在调用 txt_try.setText(ewan );
我假设您正在 initComponents();
中初始化 txt_try
,这是在 trylang
的默认构造函数中调用的。
旁注:
请遵循 Java 命名约定
txt_try ==> txtTry
trylang ==> TryLang
关于java - 读取文本文件中一行中特定数量的字符并将 "read characters"设置为 JTextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21181459/