2014-05-09 4 views
2

자바/안드로이드에서 파일을 읽기 위해 다음과 같은 코드를 생각해Java/Android 용 API 문서를 이해할 수 없습니까?

FileInputStream fis = openFileInput("myfile.txt"); 
BufferedInputStream bis = new BufferedInputStream(fis); 
StringBuffer b = new StringBuffer(); 
while (bis.available()!=0) { 
    char c = (char) bis.read(); 
    b.append(c); 
} 
bis.close(); 
fis.close(); 

을 나는 동안 루프의 조건에서 사용할 수있는() 메소드에 대해 이야기하고있다. 나는 그 방법에 대한 API 문서를 보면서 나는 다음과 같은 질문이 :

하여 while 루프 내부의 반복이 일어나고 어떻게
  • , 즉 파일 포인터는 동안의 각 반복 동안 데이터의 또 다른 덩어리로 이동하는 방법 고리? 이것은 API 문서에 지정되어 있지 않습니다.

  • 작업을 수행하는 데 어떤 클래스의 메서드를 사용해야하는지 어떻게 알 수 있습니까?

+0

귀하의 질문이 너무 광범위합니다. Javadoc을 어디에서나 이해할 수는 없습니다. 문제의 코드를 이해하는 것만으로도 단어의 절반을 제거하고 그 단어가 유일한 것인지 확인하십시오. –

+0

또한'available()'을 사용하여 읽기가 완료되어야 하는지를 결정하는 것은 권장하지 않습니다. 스트림에 남아있는 바이트 수를 알려주지는 않지만 차단하지 않고 읽을 수있는 바이트 수만 알려주는 것입니다. 이런 종류의 코드로 인해 파일에있는 것보다 적은 바이트를 읽을 수 있습니다. –

+2

API 문서는 일반적으로 이와 같은 정보를 많이 전달하지 않습니다. 웹에서 자습서를 찾는 것이 훨씬 낫습니다. API 문서는 일반적으로 참조 가이드로 사용됩니다. –

답변

4

사용할 방법이 입력 스트림에있어서의 다음의 호출에 의해 차단되지 않고 입력 스트림으로부터 판독 (또는 스킵 할 수있다) 바이트의 추정 등 int를 반환한다.

while loop은 본질적으로 파일의 끝까지 반복됩니다. 바이트가없는 경우 파일이 없습니다. 또한 http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html

은 안드로이드 프로그래밍에 포기하지 말라 : 여기

몇 가지 문서입니다! 그것은 매우 재미 있고 보람입니다! 나는 그것을 좋아한다!

희망이 조금 있습니다! :)

1

bis.available 기능은 파일의 끝을 확인합니다. while 루프가 반복 될 때마다 bis.read()를 호출하면 파일 포인터가 한 문자를 읽고 자동으로 다음 문자로 이동합니다.

사용할 방법에 대한 질문. 함수가 취하는 매개 변수를 찾아보십시오. 그리고 무엇을 성취해야하는지. 그걸 알아내는 것은 그리 어렵지 않습니다.

관련 문제