我尝试了几种方法来打开文本文件,程序将其用于在地图创建器中显示地图。 一切正常,除了如果我选择一个文本文件,我得到“ null”作为字符串。 我不知道它怎么会为空,因为文件存在(并且我在加载之前检查了它)

这是我两次尝试的2个代码块:

public String OpenText(){
    String str = null;

    JFileChooser fc = new JFileChooser();

    int returnVal = fc.showOpenDialog(null);

    if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = fc.getSelectedFile();
        System.out.println("Opening: " + file.getName() + ". " + "Path: "+file.getPath());
        if(new File(file.getPath()).exists()){
            try {
                System.out.println("File Exists.");
                /*FileReader fr = new FileReader(file);
                BufferedReader br = new BufferedReader(fr);

                StringBuilder sb = new StringBuilder();
                while((str = br.readLine())!= null){
                    sb.append(str);
                }
                */
                StringBuilder sb = new StringBuilder();
                Scanner input = new Scanner(file);
                while(input.hasNext()){
                    sb.append(input.nextLine());
                    sb.append("\n");
                }


            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    } else {
        System.out.println("Open command cancelled by user.");
    }
    System.out.println(str);
    return str;
}

该代码在第一次尝试和第二次尝试中均给出“ null”作为返回。

我知道第一个代码有效,因为我使用它来保存设置。 但是我也使用扫描仪进行了尝试。

额外信息:我尝试在其中打开HAS文本的文件。 我尝试了其他文本文件。

===============>>#1 票数:2 已采纳

我正在关注你的情况。
我尝试如下,它适用于文本文件(txt)

 StringBuilder sb = new StringBuilder();
 Scanner input = new Scanner(file);
 while(input.hasNext()){
    sb.append(input.nextLine());
    sb.append("\n");
    }
 str = sb.toString(); <-- Did you miss it?

  ask by CarolienVH translate from so

未解决问题?本站智能推荐: