안녕하세요. 해결할 수없는 문제가 있습니다. 내 Android \ java 애플리케이션에서 나는 download.php 스크립트를 호출한다. 기본적으로 출력에서 파일을 다운로드하여 내 장치에 저장합니다. 기본적으로 스크립트에 토큰을 보내고 유효한지 검사하는 모든 PHP 스크립트에 컨트롤을 추가해야했습니다. 만약 그것이 유효한 토큰이라면 나는 문자열 ("false")을 반환하지 않으면 출력 (이 경우 다른 스크립트의 파일은 json 파일)을 얻을 것이다. java : php 출력을 검사하는 중 오류가 발생했습니다.
내가 그것을 문자열로 입력 스트림을 돌려 확인 IOUtils 방법을 사용하여 내 다른 자바 파일에이 조건을 확인하고,InputStream newInputStream = new ByteArrayInputStream(mystring.getBytes("UTF-8"));
보다 다시 유효한 입력 스트림을 얻고 읽어 .. 이 때문에 캘리포니아에서 내가 나는 그것이 생각 IOUtils.toString(inputStream, "UTF-8");
을하려고 할 때
11-04 16:50:31.074: ERROR/AndroidRuntime(32363): java.lang.OutOfMemoryError
: .... 내 JSON 파일과 함께 작동하지만이 경우 ...... 나는이 오류 정말 긴 파일을 다운로드하려고합니다.
fileOutput = new BufferedOutputStream(new FileOutputStream(file,false));
inputStream = new BufferedInputStream(conn.getInputStream());
String result = IOUtils.toString(inputStream, "UTF-8");
if(result.equals("false"))
{
return false;
}
else
{
Reader r = new InputStreamReader(MyMethods.stringToInputStream(result));
int totalSize = conn.getContentLength();
int downloadedSize = 0;
byte[] buffer = new byte[1024];
int bufferLength = 0;
while ((bufferLength = inputStream.read(buffer)) > 0)
{
fileOutput.write(buffer, 0, bufferLength);
downloadedSize += bufferLength;
}
fileOutput.flush();
fileOutput.close();
파일의 길이는 얼마입니까? – Mob