에 byte 버퍼에서가는 동안 :예외 내가이 기능을 가지고 문자열
public static String read(Context context) {
FileInputStream fis;
try {
fis = context.openFileInput(INFO_FILE_NAME);
int bufferSize = 2 * 1024 * 1024; // 2 MiB
byte[] buffer = new byte[bufferSize];
fis.read(buffer);
return new String(buffer);
} catch (Exception e) {
Log.d(TAG,
"Exception while reading General Information File:"
+ e.getMessage());
return null;
}
}
함수는 null를 돌려줍니다. 이것은 예외가 있음을 의미합니다. 그러나 LogCat에는 아무 것도 기록되지 않습니다.
Eclipse로 디버깅하려했습니다. 모든 것은 "return new String (buffer);"까지는 괜찮습니다. 선. 디버거를 실행하려고하면 디버거가 직접 "return null;"로 점프합니다. "Log.d"를 거치지 않고 또한, "return null;에있을 때 라인, 나는 변수 "e"디버거에서 볼 수 없습니다. 어떻게 될 수 있습니까?
http://stackoverflow.com/questions/1536054/how-to-convert-byte-array-to-string-and-vice-versa –
ricintech의 답변이 작동하지 않는 경우 다음 링크를 사용하십시오. .... 당신이 생성하는 Byets에 문제가 있어야합니다. –
인코딩에 문제가있는 것처럼 보입니다. 인코딩을 추가하면 예외가 생성되지 않습니다. 그러나 : 1) 동안 예외를 기록 할 수없고 2) 올바른 인코딩 무엇입니까? 파일을 내 PC로 전송하면 메모장 + +에서 BOM없이 UTF-8로 열리고 확인이 표시됩니다. 그러나 새로운 String (버퍼, "UTF-8")을 사용하면 비 ASCII 문자가 올바르게 표시되지 않습니다. – user936580