2011-12-14 3 views
-2

을 작동하지 않습니다 :읽기 특정 부분이 내 코드입니다

File root = Environment.getExternalStorageDirectory(); 
     File dir = new File (root.getAbsolutePath() + "/Bonbon info"); 
     dir.mkdirs(); 
     File f = new File(dir, "paket.txt"); 

     StringBuilder text = new StringBuilder(); 


     try { 
      BufferedReader br = new BufferedReader(new FileReader(f)); 
      String line; 

      br.skip(60); 

      int charactersRead = 0; 

      while ((line = br.readLine()) != null && charactersRead < 12) { 
          text.append(line); 
          text.append('\n'); 
          charactersRead++; 
      } 
     } 
     catch (IOException e) { 
     } 

     final String URL = text.toString(); 

     TextView tv = (TextView)findViewById(R.id.textView2); 
     tv.setText(text); 

읽기가 작동,하지만 난 단지 12 문자를 읽을 수 없습니다, 그것은 모르는, 파일의 끝 물마루 읽고 왜.

+0

나는 이해할 수 없다. 읽는 모든 행에 대해 문자 수를 1 씩 증가시키고 있습니까? – EboMike

+0

모르겠다. 나는 여기서 예를 든다. ?? – Goran

답변

1

귀하의 파일이 비교적 짧다고 생각합니다.

당신은 BufferedReader.readLine()으로 전화를 걸고 있습니다. 효율적이기 위해 파일 스트림을 거치지 않고 큰 파일 덩어리를 빨아 들이고 있습니다.

당신이 읽은 것을 미세하게 제어하려면 InputStream 구현을 사용하는 것이 좋습니다.

+0

나는 aproximetly 90 문자로 텍스트 파일을 가지고 있지만, 61에서 72까지의 문자를 읽고 문자열로 저장하는 것을 wan't ... 그래서 당신이 나 에게이 방법으로 이것을 어떻게 soma 조언을 줄 수 있습니까 ?? – Goran

+0

작은 파일을 사용하면, 가장 쉬운 방법은 전체 내용을'String'으로 읽어 들이고,'substring()'을 호출하여 원하는 청크를 추출하는 것입니다. 그러나 데이터가 커지거나 복잡해 지거나 자주 변경되는 경우 해당 전략을 재고해야합니다. – Argyle

관련 문제