-1

私のOSXのデフォルトの文字セットは「UTF-8」です。これは、私が取り組んでいるJavaプロジェクトと同じです。問題は、パスに漢字が含まれていると、Fileクラスとそのメソッドの一部が正しく機能しないことです。(通常、Unicodeで漢字を表すには3バイトかかります)

たとえば、最初に文字列変数= "xxx"を開始します。ここで、"xxx"は漢字を含む有効なパスです。その後、新しいFile(prevStringVar)でFileオブジェクトを作成します。また、exists()メソッドが呼び出されると、常にfalseが返されます。

listFiles()メソッドを呼び出すときは、より有線になります。

コンストラクターFile(String path、Charset charset)のように、Fileオブジェクトをインスタンス化するときにCharsetを指定できれば、問題は解決すると思います。

4

1 に答える 1

1

メソッドをfile = new File("afile")として呼び出すだけで、Java コード内にファイル オブジェクトのインスタンスが作成されます。ファイルに何かを書き込んでバッファをフラッシュするまで、これは実際にはファイルシステムにファイルを作成しません(閉じるとバッファがフラッシュされます)。

漢字を含めるのではなく、「afile」などの平易な英単語でこれを行ってみてください。これにより、文字エンコードの問題が解消されます。そこで動作するようになったら、ファイル名を変更して、問題が解決するかどうかを確認してください。

于 2012-11-16T20:16:26.667 に答える