0
私はAndroidアプリを開発しています。私のアプリでは、バイト配列にファイルを変換する必要があります。私はスタックオーバーフローソリューションを試して、それは常に私にnullを与えています。以下の私のコードを見てください。ファイルをバイト配列に変換することは、常にAndroidでnullです。
これは私のonActivityResultコールバック
Uri bookUri = data.getData();
if(bookUri!=null)
{
String filePath = bookUri.toString();
String mime = app.getMimeType(filePath);
if(mime!=null && !mime.isEmpty() && (mime.toLowerCase()=="application/pdf" || mime.toLowerCase()=="application/txt" || mime.toLowerCase()=="application/text"))
{
bookFile = new File(filePath);
if(bookFile!=null)
{
byte[] bookByteArray = app.convertFileToByteArray(bookFile); //Converting file to byte array here
if(bookByteArray==null)
{
Toast.makeText(getBaseContext(),"NULL",Toast.LENGTH_SHORT).show();
}
}
//change book cover image
ivBookFile.setImageResource(R.drawable.book_selected);
}
else{
Toast.makeText(getBaseContext(),"Unable to process file you have chosen.",Toast.LENGTH_SHORT).show();
}
}
である私は上記のコードでバイト配列にファイルを変換していますどこ私はコメントしています。上記のコードは常に "NULL"メッセージを記録します。それは常にnullであるのはなぜ
これは私の変換方法
public byte[] convertFileToByteArray(File file)
{
FileInputStream fileInputStream=null;
byte[] bFile = new byte[(int) file.length()];
try {
//convert file into array of bytes
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
return bFile;
}catch(Exception e){
return null;
}
}
のですか? Androidでファイルをバイト配列に正しく変換するにはどうすればよいですか?
可能な重複はありますか? [ファイルからバイト配列](http://stackoverflow.com/questions/858980/file-to-byte-in-java) – DrSatan1
ほとんどの場合、例外が発生しました。何が間違っているかを見つけるために例外を記録します。 – Henry
このエラーが発生しました - /file:/storage/emulated/0/Download/147125382649668.pdf:オープンに失敗しました:ENOENT(そのようなファイルまたはディレクトリはありません) 。 "file:/// storage"は自動的に "file:/ storage"に変換されます。どうすれば問題を解決できますか?@Henry –