【问题标题】:Reading/Opening a text file in Java在 Java 中读取/打开文本文件
【发布时间】:2011-07-16 05:08:39
【问题描述】:

我知道可能有数百个帖子涉及这个确切的问题,但对于我的生活,我无法弄清楚任何事情。我在这个程序中有这个“打开”的案例,我已经承诺自己完成,作为一个开始的 Java 练习。我已经让 Save 功能工作了,但是看着它让我离尝试我的问题更近了一步。这是我的代码。

if(arg.equals(Editor.fileLabels[0])){
    if(Editor.VERBOSE)
    System.err.println(Editor.fileLabels[0] + 
               " has been selected");
    filedialog = new FileDialog(editor, "Open File Dialog", FileDialog.LOAD); 
    filedialog.setVisible(true);
    if(Editor.VERBOSE){ 
    System.err.println("Exited filedialog.setVisible(true);");
    System.err.println("Open file = " + filedialog.getFile());
    System.err.println("Open directory = " + filedialog.getDirectory()); 
    }

}

在写这个问题之前我已经尝试过解决方案;但是,我看到的所有示例都是它们自己的单独方法。任何帮助,将不胜感激。 :)

【问题讨论】:

  • 是的,我不知道你在这里问什么。
  • 在当今时代,不要使用 AWT 组件。 Swing 文件选择器是JFileChooser
  • @Andrew:java.awt.FileDialog 的一个优点是它通常会唤起平台的本机文件对话框;另见example
  • @trashgod: "..通常会唤起平台的原生文件对话框.." 没错,但显然不在this case中。跨度>
  • @Andrew:啊,我忽略了7下的XP风格对话框。谢谢!

标签: java file text


【解决方案1】:

无论您使用什么 UI 框架,只有在用户关闭文件对话框后才能获得文件对话框的结果。在您的情况下,您已显示对话框并立即期望目录和文件可用。这不会发生,因为对话框可能仍处于打开状态。

而且这一切都是基于我的猜测,因为您并没有真正说出问题所在以及您的期望。

【讨论】:

  • @Andrew 当然。我的 Swing 和 AWT 日子已经一去不复返了。但我很确定来自 awt 或 JFileChooser 的 FileDialog 不会等待setVisible,这就是我的观点。所以我删除了 Swing 这个词,以免冒犯该领域的专家。
  • "..我删除了 Swing 这个词.." +1
【解决方案2】:

公共类 FileReadWrite {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    try {
        // Open the file that is the first 
        // command line parameter
        FileInputStream fstream = new  FileInputStream("Path for the file/filename.txt");

        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        File file = new File("Path for the file/filename.txt");
        Writer writer = new BufferedWriter(new FileWriter(file));


        //Read File Line By Line
        while ((strLine = br.readLine()) != null)   {
            // Print the content on the console
            System.out.println (strLine);
            String[] words = strLine.split("\\s+");
            String revrseStrline="";
            for(int i=words.length-1;i>=0; i-- )
            {
                revrseStrline+=words[i]+" ";
            }

            writer.write(revrseStrline);
            writer.write(System.getProperty("line.separator"));

          }

         // Close the input stream
        in.close();
        writer.close();
    } catch (Exception e) { // Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }
}

}

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    相关资源
    最近更新 更多