2017-08-24 8 views
1

ファイルの入出力を学習していて、問題があります。 a.txtにはテキストがあり、読んだり印刷したりすると、最後に「?」マークがあります。削除方法は? CMDで「?」を削除する方法Javaで読み取られたファイルの末尾に署名してください

import java.io.*; 
    class fRead{ 

      public static void main(String args[])throws IOException 
      { 

       FileInputStream fin=new FileInputStream("a.txt"); 
       int i=0; 
       while(i!=-1){ 
        i=fin.read(); 
        System.out.print((char)i); 
       } 

       fin.close(); 
      } 

    } 

結果: - G:\ファイル> javacのfRead.java
G:\ファイル> Javaの関数fread
ビニャーヤクCOMPUTER ACADEMY?

最後の*** '?' ***はファイルの最後にありません。あなたはcharに変換した後、あなたがread()から取得-1を印刷するため

+0

その問題をあなたはwhileループを書いた方法で。 "i"に値を代入する前にブレーク条件をチェックしています。-1の場合もループして同じ結果を表示します。まずiに値を代入し、 "i!= -1"をチェックします。 –

答えて

2

この問題は、ループは-1が返されたとき、何も印刷せずに停止する必要にもかかわらず、発生します。

あなたは負のいずれかのチェックと代入を組み合わせることにより、それを修正することができます:

while ((i = fin.read()) != -1) { 
    System.out.print((char)i); 
} 
関連する問題