0

私はこのトピックを使用しました: Java でのファイルからバイト [] ここに私のコードがあります:

try {
  Path path1 = Paths.get(path + fileName);
  byte[] fileAsByte = Files.readAllBytes(path1);
  System.out.println("Byte : " + fileAsByte.toString());
} catch (FileNotFoundException e) {
  System.out.println("File Not Found.");
  e.printStackTrace();
} catch (IOException e1) {
  System.out.println("Error Reading The File.");
  e1.printStackTrace();
} catch (OutOfMemoryError e3) {
  System.out.println("Out of Memory");
  e3.printStackTrace();
  }

このコードは例外をトリガーしませんが、出力はまだ次のとおりです。

Byte : [B@60f17a2f

これは私にはかなり無効に思えます。私はばかげたエラーを犯したと確信していますが、それを解決しようとしてから 3 時間かかりました。

ありがとう。

4

2 に答える 2

4

配列を直接変換しStringて、人間の目で読み取れるようにすることはできません。[(「配列」を意味する)、(Bの場合byte)、@そしてそのIDハッシュコードを出力しています。

配列内のバイトのリストを取得するには、代わりに静的Arrays.toString()メソッドを使用します。

System.out.println("Byte : " + java.util.Arrays.toString(fileAsByte));

(バイトが出力文字列の文字を表している場合は、@iTechのソリューションを使用してください。)

于 2013-02-12T04:31:12.610 に答える
4

Stringで初期化されたインスタンスを作成する必要がありますbyte[]

System.out.println("Byte : " + new String(fileAsByte));

エンコーディングを指定することもできます。new String(fileAsBytes,"UTF-8");

于 2013-02-12T04:31:49.673 に答える