2016-04-24 14 views
-5

私はJavaでテキストエディタを作ろうとしていますが、 "ファイルを開く"機能が動作しないようです。コードを実行すると、ファイルの最初の行だけが表示されます。私はコードスニペットをすべてHow to read a large text file line by line using Java?から試しましたが、最初の行だけを読み込みます。これは私がしようとしたものですJavaでファイルのすべての行を読み込めないのはなぜですか?

  JMenuItem mntmOpen = new JMenuItem("Open"); 
      mntmOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0)); 
      mntmOpen.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 

      if (e.getSource() == mntmOpen) { 
       int returnVal = fc.showOpenDialog(null); 

       if (returnVal == JFileChooser.APPROVE_OPTION) { 
        File file = fc.getSelectedFile(); 
        //This is where a real application would open the file. 

        Path HI = file.toPath(); 


        try(Stream<String> lines = Files.lines(HI) 
          ){ 
         for(String line : (Iterable<String>) lines::iterator) 
         { 
          editorPane.setText(line); 
         } 
        }catch (IOException e1) { 

          // TODO Auto-generated catch block 
          e1.printStackTrace(); 
         } 


       } 
      } 
     } 
    }); 
+1

あなたが試したことを示してください。 –

+2

* "しかし、まだ最初の行だけを読みます。" *あなたのコードはそれをしません。 [mcve]を作成してください。 – Tom

+0

おそらくStringBuilderが必要で、出力に新しい行を追加する必要がありますか? –

答えて

0

はここにこの答えをチェックアウト、あなたは、whileループ内でセクションを使用することができるはずです。非常にまっすぐなフォワードは、nullになるまで実行されます。これは、リーダーがnullポインタを返すまでバッファが読み込みを続けることを示します。この場合、ファイルに何も残っていません。これがうまくいかなければ、もう一度それを見ることができます。また、最初に回答を検索せずに質問をするためにdownvotedされました。 https://www.caveofprogramming.com/java/java-file-reading-and-writing-files-in-java.html

関連する問題