2016-08-07 11 views
-1

私はあるファイル(test.in)から2つの数字を読み込んで、合計を別のファイル(test.out)に出力するプログラムを作成しています。私は私のプロジェクトのビンフォルダ内のTXT文書として2つのファイルを作成したが、それはまだこの単純なJavaファイル・リーダーが動作しない

Exception in thread "main" java.io.FileNotFoundException: test.in.txt (The system cannot find the file specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at test.main(test.java:11) 

ファイルは、画面の左側に私のプロジェクトのディレクトリに表示されない、それをただ与えます動作しません。

import java.io.*; 
import java.util.*; 

public class test { 
    public static void main (String [] args) throws IOException { 
     BufferedReader f = new BufferedReader(new FileReader("test.in.txt")); 
     PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out.txt"))); 
     StringTokenizer st = new StringTokenizer(f.readLine()); 
     int i1 = Integer.parseInt(st.nextToken()); // first integer 
     int i2 = Integer.parseInt(st.nextToken()); // second integer 
     out.println(i1+i2);       // output result 
     out.close();         // close the output file 
     } 
} 
+1

ファイル名のみを指定する場合は、Javaプログラムが存在する場所と同じ場所に置くことをお勧めします。 – SomeDude

+0

私は決してf入力リーダーを閉じなかったので、実際には動作しません。 – Programming43343443

答えて

3

あなたのファイルはテキストドキュメントなので、フォルダ内に見えなくても ".txt"で終わります。のbinにファイルを置くあなたが "test.in.txt" と "test.out.txt" に "test.in" と "test.outに" を変更する必要があり

import java.io.*; 
import java.util.*; 

public class test { 
    public static void main (String [] args) throws IOException { 
     BufferedReader f = new BufferedReader(new FileReader("test.in.txt")); 
     PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out.txt"))); 
     StringTokenizer st = new StringTokenizer(f.readLine()); 
     int i1 = Integer.parseInt(st.nextToken()); // first integer 
     int i2 = Integer.parseInt(st.nextToken()); // second integer 
     out.println(i1+i2);       // output result 
     out.close();         // close the output file 
     } 
} 
+0

この回答は十分ではありません改善してください... –

2

ファイルが ".txt"の場合、文字列 "test.in"と "test.out"の名前を変更する必要があります。 もう1つの方法は、 "test.in.txt"を "test.in"に、 "test.out.txt"を "test.out"に変更することです。

あなたのファイルは、タイプ "IN" と "OUT" ない "TXT" からでなければなりません。 のスクリーンショットは、ではなく、と表示されています。 接尾辞 "txt"が表示されないという事実は、お使いのOSの設定によって異なる場合があります。

また、ファイルはtest.javaファイルと同じディレクトリにある必要があります。

+0

いいえ、問題ありません。 – SomeDude

0

パスとファイル名を確認する必要があります。 "test.in"ファイルが "java"コマンドを呼び出したフォルダにない場合は、この例外を取得するのが普通です。

0

プロジェクトは解決策ではありません。ファイルはプロジェクトのルートディレクトリにあるはずです。あなたのファイルの名前のようないくつかの他の問題があるかもしれません。絶対パスでファイルを参照しようとします。例えば。 BufferedReader f = new BufferedReader(new FileReader("C:/MyProjetFolder/bin/test.in"));

それでも問題が解決しない場合、問題はファイルの拡張子になる可能性があります。そのため、ファイルのメタデータを調べて、拡張機能が期待どおりであるかどうかを確認してください。そうでない場合は、ファイルの名前をメタデータの拡張子(プロパティ)に変更します。

0

ファイルをbinフォルダに置く必要はありません。あなたのプロジェクトフォルダ、bin /の親に入れてください。それがうまくいきます。

0

私は質問を投稿してからこれが長いことを知っていますが、うまくいきませんでした。なぜなら、 "f"入力リーダーが決して閉じられないためです。閉じています。私は単に "f.close();"それを機能させるためにそれはテキストファイルの名前と関係がありませんでした。

ここに作業コードがあります。

import java.io.*; 
import java.util.*; 

public class test { 
    public static void main (String [] args) throws IOException { 
     BufferedReader f = new BufferedReader(new FileReader("test.in.txt")); 
     PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out.txt"))); 
     StringTokenizer st = new StringTokenizer(f.readLine()); 
     int i1 = Integer.parseInt(st.nextToken()); // first integer 
     int i2 = Integer.parseInt(st.nextToken()); // second integer 
     out.println(i1+i2); // output rresult 
     f.close(); 
     out.close();  
     // close the output file 
     } 
} 
関連する問題