0

以下のコードを使用して、ファイルを作成しようとしました。

import java.io.File;

public class DeleteEvidence {

public static void main(String[] args) {
    File evidence = new File("cookedBooks.txt");

ただし、ファイルcookedBooks.txtは私のコンピューターのどこにも存在しません。私はこれにかなり慣れていないので、同様の問題について他のスレッドを理解するのに問題があります。

4

6 に答える 6

5

クラス のインスタンスが正常に作成されましたFile。これは、ハード ドライブに実際のファイルを作成するのとは大きく異なります。

クラスのインスタンスはFile、ディスク上のファイルを参照するために使用されます。たとえば、次のように多くのことに使用できます。

  • ファイルまたはディレクトリが存在するかどうかを確認します。
  • ファイルまたはディレクトリの作成/削除/名前変更; と
  • 「ストリーム」を開いてデータをファイルに書き込みます。

ハードディスクにファイルを作成し、そこにデータを書き込むには、たとえばFileOutputStream.

public class AnExample {
  public static void main(String... args) throws Throwable {
    final File file = new File("file.dat");
    try (FileOutputStream fos = new FileOutputStream(file);
         DataOutputStream out = new DataOutputStream(fos)) {
      out.writeInt(42);
    }
  }
}

ここでfos、 のインスタンスではFileOutputStreamOutputStream書き込まれたすべてのバイトをディスク上の基になるファイルに書き込みます。

DataOutputStream次に、その周りのインスタンスを作成しますFileOutputStream。このようにして、バイトやバイト配列よりも複雑なデータ型を記述できます (これは、FileOutputStream直接使用する唯一の可能性です)。

最後に、整数を表す 4 バイトのデータがファイルに書き込まれます42。このファイルをテキスト エディターで開くと、上記のコードでは文字 '4' と '2' が書き込まれていないため、ゴミが表示されることに注意してください。

もう 1 つの可能性は、 を使用することでした。これにより、テキスト (非バイナリ) ファイルの書き込みに使用できるOutputStreamWriterのインスタンスが得られます。Writer

public class AnExample {
  public static void main(String... args) throws Throwable {
    final File file = new File("file.txt");
    try (FileOutputStream fos = new FileOutputStream(file);
         OutputStreamWriter out = new OutputStreamWriter(fos, StandardCharsets.UTF_8)) {
      out.write("You can read this with a text editor.");
    }
  }
}

ここで、テキスト エディタでファイルfile.txtを開き、そこに書き込まれたメッセージを読むことができます。

于 2013-06-21T06:06:30.257 に答える
2
File evidence = new File(path);
evidence.mkdirs(); 
evidence.createNewFile();
于 2013-06-21T06:07:18.803 に答える