私の基本的なコードは、ファイルがパスに基づいて、exitenceチェックしようとしている、UTF-8文字を使用した作業が、それは、Unicode文字を扱うことができません:入力(つまり、ファイルパスJavaの
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
File f = new File(input);
if (f.exists()) {
System.out.println("File is Found, According to java.io");
} else {
System.out.println(f.toString() + " is Not Existed, According to java.io ");
}
Path x = Paths.get(input);
if (Files.exists(x)) {
System.out.println("File is Found, According to java.nio");
} else {
System.out.println(x.toString() + " is Not Existed, According to java.nio");
}
)がASCIIであれば、コードはうまく動作しますが、入力にUTF-8文字が含まれていると、コードは両方とも失敗します。
1-入力を正しく印刷します。
入力:
C
2-決定は、ファイルが存在する
例(すなわち、ファイルが存在する場合でも、コードがそのファイルが終了していない指示します) ://€.jpg
出力:
C:\ JPGが存在しなかっされ、java.io
Cによると:。。\ JPGは、私は、NetBeansを使用java.nioの
によると、存在していませんJava 1.8、maven。
PS:私が使用してみました:と
実行:
の-Dfile.encoding = UTF-8
は、プロパティを投影するfollowignを追加します。
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
を
ですが、何も起こりませんでした。
お願いします。
問題は、適切な入力エンコーディングを使用する必要があるということですので、文字列が正しいです。デバッガで、 'input'に設定されているものが正確に含まれているかどうかを確認してください。あなたはおそらく驚くでしょう。 –