PCからAndroidフォンに写真を送信しようとしていますが、写真の送信に問題があります。ここに画像を送信しているJavaアプリケーションのコードを投稿しています。
public void send(OutputStream os) throws Exception{
// sendfile
File myFile = new File ("E:\\a.png");
System.out.println("the file is read");
byte [] mybytearray = new byte [(int)myFile.length()+1];
FileInputStream fis = new FileInputStream(myFile);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(mybytearray,0,mybytearray.length);
System.out.println("Sending...");
os.write(mybytearray,0,mybytearray.length);
os.flush();
}
上記のコードは、ポートにファイルを書き込むだけです。
実際にそのファイルを受け取る Android コードを次に示します。ループが開始し、終了しません。ポートへの接続は正しく、文字列を送受信できます
public Bitmap receiveFile(InputStream is) throws Exception{
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.png";
String imageInSD = baseDir + File.separator + fileName;
int filesize=6022386;
int bytesRead;
int current = 0;
byte [] mybytearray = new byte [filesize];
FileOutputStream fos = new FileOutputStream(imageInSD);
BufferedOutputStream bos = new BufferedOutputStream(fos);
bytesRead = is.read(mybytearray,0,mybytearray.length);
current = bytesRead;
do {
bytesRead =
is.read(mybytearray, current, (mybytearray.length-current));
if(bytesRead >= 0) current += bytesRead;
} while(bytesRead != -1);
bos.write(mybytearray, 0 , current);
bos.flush();
bos.close();
return null;
}
写真を共有する他の方法も親切に提案してください