StringBuilder가 String으로 변환 할 때 데이터 손실

Sruit A. Suk

여기에 문제가 뭐야

내 StringBuilder에서 String을 얻으려고 할 때 문제가 있습니다.

BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()), 128 * 1024);
StringBuilder dataResponseSB = new StringBuilder();
String line ;
while ((line = reader.readLine()) != null) {
    dataResponseSB.append(line);
    if (DataFactory.DEBUG_MODE) {
        // all data here are complete
        Log.i("===LoadDataActivity","line: "+line);
    }
}
String rawdata = new String(dataResponseSB); // dataResponseSB.toString(); also not work
if (DataFactory.DEBUG_MODE) {
    // data here are lost
    Log.i("===LoadDataActivity","rawdata: "+rawdata);
}

(-) BufferedReader .readLine ()에서 엄청난 데이터를받습니다.

(-) Log를 사용하여 한 줄에 약 5 줄의 8000 Buffer Size가 있는지 확인하고 모든 데이터를 올바르게 수신했는지 확인합니다.

(1) 각 줄을 StringBuilder에 추가합니다.

(-) StringBuilder에 모든 줄을 추가 한 후

(2) 다시 문자열로 변환하려고합니다.

(-) 이제 문제는 여기에서 새 문자열을 확인할 때 데이터에 8192 만 있습니다 (최소 30,000 개 이상을 포함해야 함).

무엇이 문제입니까? StringBuilder (1)에 추가 할 때 잃어 버렸거나 String으로 다시 변환 할 때 잃어버린 것인지 모르겠습니다 (2)


아래에 시도한 코드를 추가하고 UTF8과 UTF8을 모두 시도했습니다.

            HttpParams params = new BasicHttpParams();
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
            //params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, );
            params.setParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 128 * 1024);
            HttpClient client = new DefaultHttpClient(params);


        //  HttpClient client = new DefaultHttpClient(new BasicHttpParams());
            HttpPost httppost = new HttpPost(DataFactory.REQUEST_API_URL + "?id=" + DataFactory.USER_ID );
            // Depends on your web service

            HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
            HttpConnectionParams.setSocketBufferSize(client.getParams(), 128 * 1024);
            HttpResponse response = client.execute(httppost);  
            //response.setParams(client.getParams().setParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 128 * 1024));

            //String rawdata = IOUtils.toString(response.getEntity().getContent(), "UTF-8");
           // String rawdata = EntityUtils.toString(response.getEntity());
            String rawdata = getResponseBody(response.getEntity());

            //Scanner s = new Scanner(response.getEntity().getContent()).useDelimiter("\\A");
            //String rawdata = s.hasNext() ? s.next() : "";


            /*

            //BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            // ===================

            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()), 128 * 1024);
            StringBuilder dataResponseSB = new StringBuilder();
            String line ;
            while ((line = reader.readLine()) != null) {
                dataResponseSB.append(line);
                if (DataFactory.DEBUG_MODE) {
                    Log.i("===LoadDataActivity","line: "+line);
                }
            }
            dataResponseSB.trimToSize();
            String rawdata = new String(dataResponseSB);

            /*
            InputStreamReader reader = new InputStreamReader(response.getEntity().getContent());
            StringBuffer sb = new StringBuffer();
            int c;
            while ((c = reader.read()) != -1) {
                sb.append((char)c);
                if (DataFactory.DEBUG_MODE) {
                    //Log.i("===LoadDataActivity","line: "+line);
                }
            }
            */
존 스키트

나는 이것이 문제라고 확신합니다.

Log.i("===LoadDataActivity","rawdata: "+rawdata);

로그 항목에 모든 데이터 포함될 있다고 가정합니다. 각 로그 항목은 8192 자로 제한되어 있습니다.

로깅을 제안하면 rawdata.length()실제로 모든 데이터가 있음을 알 수 있습니다. 실패한 로깅 일뿐입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UIImage에서 Mat로 변환 할 때 데이터 손실

분류에서Dev

UIImage에서 Mat로 변환 할 때 데이터 손실

분류에서Dev

바이트 배열로 변환 할 때 이미지 데이터 손실

분류에서Dev

'long'에서 'VARTYPE'으로 변환, 데이터 손실 가능성

분류에서Dev

'long'에서 'VARTYPE'으로 변환, 데이터 손실 가능성

분류에서Dev

jpg 파일을 png로 변환 할 때 정보 손실이 있습니까?

분류에서Dev

문자열에서 정수로 변환 할 때 선행 "0"0이 손실 됨

분류에서Dev

Varchar 값 'NOTDEFINED'를 데이터 형식 Int로 변환 할 때 변환 실패

분류에서Dev

내 XML 요소가 XSLT의 속성으로 변환 될 때 데이터가 손실되는 이유는 무엇입니까?

분류에서Dev

fits rec에서 ndaray로 변환 할 때 정보 손실

분류에서Dev

varchar 값을 숫자 데이터 유형으로 변환 할 때 SQL 변환에 실패했습니다.

분류에서Dev

SQL Server에서 varchar 값을 int 데이터 형식으로 변환 할 때 변환에 실패했습니다.

분류에서Dev

nvarchar 값을 int 데이터 형식으로 변환 할 때 변환에 실패했습니다.

분류에서Dev

Ruby Base64 인코딩 변환으로 인해 데이터가 손실되는 이유는 무엇이며 어떻게 라우팅 할 수 있습니까?

분류에서Dev

rsyslog에서 kill -HUP를 실행할 때 UDP 데이터가 손실됩니까?

분류에서Dev

필터를 적용 할 때 갑자기 데이터 소스가 손실 됨

분류에서Dev

'size_t'에서 'const double'로 변환, 데이터 손실 가능성

분류에서Dev

경고 C4244 : '=': 'DATE'에서 'int'로 변환, 데이터 손실 가능성

분류에서Dev

"nvarchar 값 '113332,113347'을 데이터 유형 int로 변환 할 때 변환이 실패했습니다."

분류에서Dev

React 후크를 사용할 때 MediaRecorder의 중간 데이터가 손실 됨

분류에서Dev

Android에서 스크롤 할 때 목록보기 edittext 데이터가 손실 됨

분류에서Dev

varchar 값 '6276.54'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

분류에서Dev

varchar 값 'U'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

분류에서Dev

"varchar 값 'ABC'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다."

분류에서Dev

nopcommerce 4.3에서 nvarchar 값 'abc'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

분류에서Dev

org.hibernate.exception.SQLGrammarException : nvarchar 값 'ViewWebApp'을 데이터 유형 int로 변환 할 때 변환 실패

분류에서Dev

nvarchar 값 '$ 28,926.25'를 데이터 형식 int로 변환 할 때 변환에 실패했습니다.

분류에서Dev

varchar 값 '@id'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

분류에서Dev

varchar 값 '_1'을 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

Related 관련 기사

  1. 1

    UIImage에서 Mat로 변환 할 때 데이터 손실

  2. 2

    UIImage에서 Mat로 변환 할 때 데이터 손실

  3. 3

    바이트 배열로 변환 할 때 이미지 데이터 손실

  4. 4

    'long'에서 'VARTYPE'으로 변환, 데이터 손실 가능성

  5. 5

    'long'에서 'VARTYPE'으로 변환, 데이터 손실 가능성

  6. 6

    jpg 파일을 png로 변환 할 때 정보 손실이 있습니까?

  7. 7

    문자열에서 정수로 변환 할 때 선행 "0"0이 손실 됨

  8. 8

    Varchar 값 'NOTDEFINED'를 데이터 형식 Int로 변환 할 때 변환 실패

  9. 9

    내 XML 요소가 XSLT의 속성으로 변환 될 때 데이터가 손실되는 이유는 무엇입니까?

  10. 10

    fits rec에서 ndaray로 변환 할 때 정보 손실

  11. 11

    varchar 값을 숫자 데이터 유형으로 변환 할 때 SQL 변환에 실패했습니다.

  12. 12

    SQL Server에서 varchar 값을 int 데이터 형식으로 변환 할 때 변환에 실패했습니다.

  13. 13

    nvarchar 값을 int 데이터 형식으로 변환 할 때 변환에 실패했습니다.

  14. 14

    Ruby Base64 인코딩 변환으로 인해 데이터가 손실되는 이유는 무엇이며 어떻게 라우팅 할 수 있습니까?

  15. 15

    rsyslog에서 kill -HUP를 실행할 때 UDP 데이터가 손실됩니까?

  16. 16

    필터를 적용 할 때 갑자기 데이터 소스가 손실 됨

  17. 17

    'size_t'에서 'const double'로 변환, 데이터 손실 가능성

  18. 18

    경고 C4244 : '=': 'DATE'에서 'int'로 변환, 데이터 손실 가능성

  19. 19

    "nvarchar 값 '113332,113347'을 데이터 유형 int로 변환 할 때 변환이 실패했습니다."

  20. 20

    React 후크를 사용할 때 MediaRecorder의 중간 데이터가 손실 됨

  21. 21

    Android에서 스크롤 할 때 목록보기 edittext 데이터가 손실 됨

  22. 22

    varchar 값 '6276.54'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

  23. 23

    varchar 값 'U'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

  24. 24

    "varchar 값 'ABC'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다."

  25. 25

    nopcommerce 4.3에서 nvarchar 값 'abc'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

  26. 26

    org.hibernate.exception.SQLGrammarException : nvarchar 값 'ViewWebApp'을 데이터 유형 int로 변환 할 때 변환 실패

  27. 27

    nvarchar 값 '$ 28,926.25'를 데이터 형식 int로 변환 할 때 변환에 실패했습니다.

  28. 28

    varchar 값 '@id'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

  29. 29

    varchar 값 '_1'을 데이터 유형 int로 변환 할 때 변환에 실패했습니다.

뜨겁다태그

보관