받은 데이터를 저장하려고하는 안드로이드에 bmp 파일과 클라이언트를 보내는 서버가 있습니다.자바에서 수신 된 데이터 저장
...
byte[] Rbuffer = new byte[2000];
dis.read(Rbuffer);
try {
writeSDCard.writeToSDFile(Rbuffer);
} catch (Exception e) {
Log.e("TCP", "S: Error at file write", e);
} finally {
Log.e("Writer", "S: Is it written?");
}
...
void writeToSDFile(byte[] inputMsg){
// Find the root of the external storage.
// See http://developer.android.com/guide/topics/data/data- storage.html#filesExternal
File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/download");
if (!(dir.exists())) {
dir.mkdirs();
}
Log.d("WriteSDCard", "Start writing");
File file = new File(dir, "myData.txt");
try {
// Start writing in the file without overwriting previous data (true input)
Log.d("WriteSDCard", "Start writing 1");
FileOutputStream f = new FileOutputStream(file, true);
PrintWriter ps = new PrintWriter(f);
// PrintStream ps = new PrintStream(f);
ps.print(inputMsg);
ps.flush();
ps.close();
Log.d("WriteSDCard", "Start writing 2");
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.i(TAG, "******* File not found. Did you" +
" add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
} catch (IOException e) {
e.printStackTrace();
}
}
그러나 출력 내가 객체 식별자
예를 나타납니다 다음 코드를 사용하여 파일에 데이터를 저장 [B @의 23fgfgre [B에서 @의 eft908eh ...
([이 array.The B가 byte.The @가 ID.The의 16 진수의 형태는 오브젝트 ID 또는 해시되어 분리 수단).
"PrintWriter"대신 "PrintStream"을 사용해도 같은 결과가 나타납니다 ...
어떻게 실제 출력을 저장할 수 있습니까?
'FileOutputStream'에서'BufferedOutputStream'을 만들고'write (byte [])'메소드를 사용해 보았습니까? –
'Rbuffer = 새로운 바이트 [2000];'. bmp 파일이 2000 바이트보다 작습니까? – greenapps
'dir.mkdirs();'. 반환 값을 확인하십시오. 거짓 일 수 있습니다. false 인 경우 코드를 계속 사용하지만 축배를 표시하고 반환하십시오. – greenapps