0

このリファレンスを使用して、プロジェクトのファイルを読み取りました。しかし、私は同様に保存する必要があります私はこれを行う方法がわかりませんか?私を助けてください。

ファイルを読み取るために、リンクからコードを取得しました

InputStream csv = 
             SomeClassInTheSamePackage.class.getResourceAsStream("filename.csv");

このように、誰でもファイルを書くのを手伝ってくれます

現在、私はこのコードを使用しています:

 Writer output = null;
 output = new BufferedWriter(new FileWriter("./filename.csv"));

ただし、実行時にFileNotFound例外がスローされます

問題はファイルパスの検索にあります。絶対パスを指定すれば正常に動作します。ただし、どのコンピューターでも実行する必要があります

4

4 に答える 4

0

FileWriterは、必要に応じてファイルを作成します。すでに存在している必要はありません。

このエラーが発生する唯一の方法は、現在の作業ディレクトリが存在しないか、ディレクトリにファイルを作成する権限がない場合です。

于 2013-01-31T17:40:58.910 に答える
0

権限を確認してください:

Writer output = null;
if (new File("./filename.csv").canWrite()) {
   System.out.println("You have not permissions");
} else {
   output = new BufferedWriter(new FileWriter("./filename.csv"));
   ...
}
于 2013-01-31T17:41:32.413 に答える
0

OK..次のコードを使用して、ファイルのパスを取得します。

String path = System.getProperty("user.dir");
FileWriter fw = new FileWriter(path+File.separator+"filename.csv");

編集

"pqr.txt"これは、パッケージにファイルを作成するデモ コードですmyPackage。コマンドを使用して、java myPackage.AccessCheckつまり mypackage の上の 1 つのディレクトリからクラス ファイルを実行しているとします。

package myPackage;
import java.io.FileWriter;
import java.io.File;
public class AccessCheck
{
    protected void callme()
    {

        try
        {
            String name = System.getProperty("user.dir")+File.separator+AccessCheck.class.getPackage().getName()+File.separator+"pqr.txt";
            System.out.println(name);
            FileWriter fw = new FileWriter(name);
        }catch(Exception ex){ex.printStackTrace();}
    }
    public static void main(String st[])
    {
        AccessCheck asc = new AccessCheck();
        asc.callme();
    }
}
于 2013-01-31T17:59:00.637 に答える