2017-02-11 25 views
-2
package com.company; 

public class Main { 

    public static void main(String[] args) { 
    java.io.File file = new java.io.File("image/us.gif"); 
    System.out.println("Does it exist:" + file.exists()); 
    System.out.println("The file has " + file.length() + "bytes"); 
    System.out.println("Can it be read? " + file.canRead()); 
    } 
} 

私の本「Introduction to Java Programming」のこのコードをコピーして、正しくコンパイルしましたが、ファイルを作成せず、メソッドにfalseとゼロバイトを返します。誰かが私に最善の答えを与えるのを助けることができますか?Javaがファイルを作成していません

+0

ファイルを作成したいのですか? –

+2

'new java.io.File(" image/us.gif ");'単独では基本的に何もしません。読み書きのためにある種のバイトストリームが必要です。あなたは何をしようとしているのですか? –

+2

'File'は仮想コンセプトの' File'ですが、存在する必要はありません。仮想コンセプトで表現された 'File'を"作成 "したい場合は、' 'File#createNewFile '](https://docs.oracle.com/javase/7/docs/api/java/io/File.html#createNewFile()) - 空のファイルが作成されます。あなたがシステム上の 'File'を知っていると仮定すると、' File'を指すことができ、より良い結果を得られます。 – MadProgrammer

答えて

1

ファイルがまだ存在しない場合は、手動で作成する必要があります。新しいFileオブジェクトを作成することは、ファイルシステムにファイルを作成することと混同しないでください。また、ファイルは、それを上書きしないように、それを作成する前に存在しているかどうかを確認するために良いでしょう

File someFile = new File("path.to.file"); 
someFile.createFile(); 

:あなたは、クラスファイルに存在する方法createFile();を使用する必要がありますファイルを作成するには

File someFile = new File("path.to.file"); 
if(!someFile.exists()) { 
    someFile.createFile(); 
} 

これにより、新しい空のファイルが作成されます。つまり、長さは0になります。 ファイルに書き込むには、バイトストリームが必要です。

File test = new File("SomeFileName.txt"); 
FileWriter fw = new FileWriter(test); 
fw.append("Hello! :D"); 
fw.close(); 


:私はあなたが処理する必要がありますスロー例外上記の例で使用されるいくつかの方法たとえば、てFileWriterを使用しました。

関連する問題