2017-02-27 7 views
0

자명 한 제목, 안드로이드 웹 사이트에서 나온 int는 무엇입니까, 무엇을합니까? 왜 필요합니까? 의 OutputStream 요약Android ByteArrayOutputStream.write - "int off"인수는 무엇입니까

공극 쓰기 ( 해제 바이트 [] B, INT, INT LEN)

: I는 제 1 및 제 2 bytearrayoutputstream.write에서 논의되지만 로이드 웹에서하지 이것

이해

에서 시작하여 지정된 출력 배열에서이 출력 스트림으로 오프셋 된 len 바이트를 씁니다.

샘플 코드 :

public byte[] getUrlBytes(String urlSpec) throws IOException { 
    URL url = new URL(urlSpec); 
    HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
    try { 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     InputStream in = connection.getInputStream(); 
     if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { 
      throw new IOException(connection.getResponseMessage() + 
        ": with " + 
        urlSpec); 
     } 
     int bytesRead = 0; 
     byte[] buffer = new byte[1024]; 
     while ((bytesRead = in.read(buffer)) > 0) { 
      out.write(buffer, 0, bytesRead); 
     } 
     out.close(); 
     return out.toByteArray(); 
    } finally { 
     connection.disconnect(); 
    } 

답변

1

off부터 복사를 시작하는 인덱스를 의미한다 "오프셋"의 약자입니다. len (또는 "길이")와 함께 사용하면 전체 소스 배열 대신 임의의 하위 시퀀스를 복사 할 수 있습니다. 예 :

byte[] array = {1,2,3,4}; 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
baos.write(array, 1, 2); // copy 2 bytes from index 1 
System.out.println(Arrays.toString(baos.toByteArray())); 
// Output: 
// [2, 3]