Javafx TextArea setText方法使用文本文件

Javafx TextArea setText method using text files

您好,我正在尝试为 javafx 创建一个在 TextArea setText 方法中使用的方法。

我正在尝试获取执行此操作的方法:

public static void  setTextArea(String fileName) {

    String line;

    try {
        FileReader fileReader = new FileReader(fileName);
        BufferedReader buffer = new   BufferedReader(fileReader);

        while ((line = buffer.readLine()) != null) {
            out.println(line);
        }
        buffer.close();
} catch //etc etc

但我不能在 setText 方法中使用它,因为它是一个 void 方法。 任何人都可以帮助翻译这个方法,以便它可以在 TextArea setText 方法中工作吗? -谢谢!

我猜你只是把 System.out 的台词拉出来了。您必须通过执行以下操作来添加文本文件的内容

public static void  setTextArea(String fileName) {

String line;
String content;

try {
    FileReader fileReader = new FileReader(fileName);
    BufferedReader buffer = new   BufferedReader(fileReader);

    while ((line = buffer.readLine()) != null) {
        out.println(line);
        content += line;
    }
    buffer.close();
} catch //etc etc

然后您可以 return content 或从 TextArea class 调用 setText(content)。如果它是一个大文件,那么使用 StringBuilder 可能比连接每一行更好。

您必须从文件中获取数据并将数据设置到 textArea..

  TextArea txtArea = new TextArea();
  String data = getDataForTextArea(String fileLocation);
  txtArea.setText(data);
public String getDataForTextArea(String fileLocation) {
  InputStream inputStream = new FileInputStream(fileLocation);
        if (inputStream != null) {
            int b;
            String txtData = "";
            try {
                while ((b = inputStream.read()) != -1) {
                    txtData += (char) b;
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                inputStream.close();
            }
            return txtData;
    }

确保检查 nullpointerException。