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

InputStream으로 파일읽기문제

0 추천
	int mBufferSize = 1024 * 25; //전역변수

	public byte[] filebyte() {
		byte[] data = new byte[mBufferSize];
		byte buffer = 0;
		byte[] output = new byte[mBufferSize];
		try {
			InputStream fres = m_Context.getResources().openRawResource(
					R.raw.file100);

			while ((buffer = (byte) fres.read(data, 0, data.length)) != -1) {;
			} //☆


		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			Log.d("DEBUG", "파일없음");
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			Log.d("DEBUG", "예외처리");
			e.printStackTrace();
		}
		return data;
	}

file100이라는 100kB짜리 텍스트파일을 읽어오고있는데 

read(buf,0,길이) 이 메서드가 텍스트파일 처음부터 길이만큼만 읽어오는 메서드 아닌가요?

저렇게 실행을 하게되면 파일의 처음이 아닌 중간부터 시작해 길이(1024*25)만큼만 버퍼에 들어가집니다..

파일 처음부터 원하는 사이즈만큼만 버퍼배열(data배열)에 넣고 싶은데 어떻게해야할까요?

kkong_93 (680 포인트) 님이 2015년 1월 7일 질문
kkong_93님이 2015년 1월 7일 수정

1개의 답변

0 추천
read 호출시 항상 버퍼 크기 만큼 읽는게 아닙니다.

실제로 얼마만큼 읽었는지 확인하여 처리하는게 필요합니다.
익명사용자 님이 2015년 1월 7일 답변
그럼 파일처음부터 원하는 사이즈만큼만 버퍼배열에 넣으려면 어떻게해야할까요..
...