마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

FileInputStream 버퍼 문의

0 추천
FileInputStream햇을때

input.read() << 여기 버퍼 사이즈가 기록된 버퍼가 들어가는데

예를들어 byte[] abc = new byte[1024];

input.read(abc);   이런식으로 할당을 하게됩니다.

 

이렇게 말고 파일을 읽어와서 버퍼에 쓸때 파일 크기만큼 버퍼를 동적으로 설정을 못하나요?
모르겟다zz (650 포인트) 님이 2013년 10월 23일 질문

1개의 답변

0 추천
바로는  힘들고 보통 ByteArrayOutputStream를 사용하거나 ByteBuffer 를 이용해 읽은 데이터를 추가한 후 사용합니다
아래가 예제입니다.

ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
while ((int bytesRead = is.read(b)) != -1) {
 bos.write(b, 0, bytesRead);
}
byte[] bytes = bos.toByteArray(); 

 

사악미소 (65,330 포인트) 님이 2013년 10월 23일 답변
제가 잘 이해가 안가서 그런데요..
        try {
            input = new FileInputStream(ImageRoot);
            input.read();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
이것까지 포함해서 전체적으로 예시 한번만 들어주시면 안될까요?
...