8

私はJavaでファイルを読み込もうとしています:

Public class Test{

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

BufferedReader f = new BufferedReader(new FileReader("test.in"));

//...

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out")));

//...                                 

}

}

1)「test.in」の場所はどこにすべきですか?(src?bin ????)

2)「test.out」はどこにありますか?

4

5 に答える 5

9

System.getProperty( "user.dir")で指定されたディレクトリで相対パスファイルが検索されます

于 2012-05-17T21:15:52.923 に答える
4

答えは作業フォルダです。これは、「java...」コマンドを実行したフォルダを意味します。これは、たとえばEclipseプロジェクトのプロジェクトフォルダーです。

于 2012-05-17T21:16:18.733 に答える
3

通常、これは実行しているJavaファイルが存在する正確な場所です。したがって、JavaファイルをC:\で使用し、パスを指定せずにファイルを検索すると、そのファイルはC:\に表示され、出力ファイルもC:\になります。

ただし、Netbeansのようなものを使用している場合は、ファイルを特定のプロジェクトのnetbeansプロジェクトフォルダ(ルートディレクトリフォルダ)に配置するだけです。プロジェクトのソースフォルダーまたはbinフォルダーにはありません。

于 2012-05-17T21:13:28.150 に答える
1

私はおそらくこの質問にあまりにも長い時間を費やしましたが、:

C:\temp>notepad test_in.txt =>

こんにちはJava入力!

同じディレクトリに「Test.java」を作成します。

package com.mytest;

import java.io.*;

public class Test {

  public static void main (String [] args) throws IOException {
    System.out.println ("Current directory is " + new File(".").getAbsolutePath());

    System.out.println ("Reading file " + INPUT_FILE + "...");
    BufferedReader fis = 
      new BufferedReader(new FileReader(INPUT_FILE));
    String s = fis.readLine ();
    fis.close ();
    System.out.println ("Contents: " + s + ".");

    System.out.println ("Writing file " + INPUT_FILE + "...");
    PrintWriter fos = 
      new PrintWriter(new BufferedWriter(new FileWriter("test_out.txt")));
    fos.println ("Hello Java output");
    fos.close ();
    System.out.println ("Done.");
  }

  private static final String INPUT_FILE = "test_in.txt";
  private static final String OUTPUT_FILE = "test_out.txt";
}

最後に、それを実行します-完全なパッケージ名を指定します:

C:\temp>javac -d . Test.java

C:\temp>dir com\mytest
 Volume in drive C has no label.
 Volume Serial Number is 7096-6FDD

 Directory of C:\temp\com\mytest

05/17/2012  02:23 PM    <DIR>          .
05/17/2012  02:23 PM    <DIR>          ..
05/17/2012  02:29 PM             1,375 Test.class
               1 File(s)          1,375 bytes
               2 Dir(s)  396,478,521,344 bytes free

C:\temp>java com.mytest.Test
Current directory is C:\temp\.
Reading file test_in.txt...
Contents: Hello Java input!.
Writing file test_in.txt...
Done.

C:\temp>dir/od test*.txt
 Volume in drive C has no label.
 Volume Serial Number is 7096-6FDD

 Directory of C:\temp

05/17/2012  02:24 PM                17 test_in.txt
05/17/2012  02:29 PM                19 test_out.txt
               2 File(s)             36 bytes

'次のようないくつかのことを説明するのに役立つことを願っています。

  • コンパイルと実行に関する「デフォルトディレクトリ」

  • 「パッケージ」と「ディレクトリ」の関係

  • Javaがクラスファイルをパッケージディレクトリ(必ずしも作業ディレクトリである必要はありません)に配置するという事実

于 2012-05-17T21:31:20.710 に答える
1

Eclipseは、プロジェクトのルートフォルダー(プロジェクト名フォルダー)でファイルを正確に検索します。したがって、src / test.inを使用して、プロジェクトのsrcフォルダー内のファイルを見つけることができます。

于 2015-10-12T18:06:26.733 に答える