2010-12-30 3 views
0

그래서이 앱에서 사용자가 프로젝트를 만들고 저장하면 SD 카드의 numberFrames.txt에 프레임 수가 저장됩니다. 그런 다음 다른 클래스의 파일을 검색합니다. 단,이 코드를 실행 한 후 nFrames의 축배를 화면에 표시하면 nFrames = 50입니다. 내가하는 nFrames의 초기화는 onCreate()에있는이 코드 바로 위에있는 0입니다.SD 카드의 txt 파일에서 int 값을 읽는 중

File sdcardLocal = Environment.getExternalStorageDirectory(); 
       File dir = new File (sdcardLocal.getAbsolutePath() + "/Flipbook/"+customizeDialog.getTitle()+"/"); 
       dir.mkdirs(); 
       File fileNum = new File(dir, "numberFrames.txt"); 
       FileWriter myFileWriter = null; 
     try { 
     myFileWriter = new FileWriter(fileNum); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
       BufferedWriter out = new BufferedWriter(myFileWriter); 
          try { 
          String text = bitmaps.size()+""; 
          out.write(text); 
     out.close(); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 

이 파일을 검색합니다. 나는 nFrames에 대한 "50"값이 어디에서 왔는지 전혀 알지 못합니다. 이것에 대한 루프가 없기 때문에 저장 한 특정 프로젝트에는 프레임이 3 개 밖에 없다는 것을 압니다. 왜 이런거야?

FileInputStream is = null; 
      BufferedInputStream bis = null; 
      try { 
       is = new FileInputStream(new File(mFolderDialog.getPath()+"/numberFrames.txt")); 
       bis = new BufferedInputStream(is); 
       nFrames = bis.read(); 
      }catch (IOException e) { 
    e.printStackTrace(); 
    } 

답변

2

문자열을 쓰고 첫 번째 바이트를 정수로 읽는 중입니다. 50은 '2'문자의 ASCII 코드입니다.

BufferedReader.readLine을 사용하면 파일의 첫 번째 줄 전체를 String으로 읽고 Integer.parseInt를 사용하여 정수로 변환 할 수 있습니다.

또한 애플리케이션의 워크 플로를 자세히 살펴 보겠습니다. 많은 정보를 제공하지 않지만 단일 정수 값을 가진 파일을 sdcard에 저장하면 특정 "냄새"가납니다. :) 혹시 데이터베이스를 사용하여 보았습니까, 아니면 어쩌면 텍스트 파일을 응용 프로그램의 디렉토리에 저장 했습니까?

+0

참으로 나는 잘못된 방향으로 향했다. 폴더에있는 항목의 수를 얻는 방법을 찾았고 처음부터 txt 파일을 저장해야 할 필요가 없어졌습니다. –