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

파일 읽기 좀 봐주시길바랍니다.

0 추천

File file = null;  //전역변수 설정

@Override
  protected void onCreate(Bundle savedInstanceState) {
   // TODO Auto-generated method stub
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   mBatteryText = (TextView)findViewById(R.id.battery);
   adc = (TextView)findViewById(R.id.textView1);
   test = (TextView)findViewById(R.id.textView4);
   
   file = new File("sys/class/power-supply/battery/batt_current_adc");
   readFile(file);
  }
  
  protected void readFile(File file) {
   // TODO Auto-generated method stub
   int readcount=0;
         if(file!=null && file.exists()){
             try {
                 FileInputStream fis = new FileInputStream(file);
                 readcount = (int)file.length();
                 byte[] buffer = new byte[readcount];
                 fis.read(buffer);
                 for(int i=0 ; i<file.length();i++){
                    //Log.d(TAG, ""+buffer[i]);
                 }
                
                 String ff = buffer.toString();
                 adc.setText(ff);
                 fis.close();
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
  }
  

값을 못읽어옵니다.

30번줄 setText에 아무것도 나오질 않아요;

어디가 잘못됐을까요?

 

앤드류이드 (6,190 포인트) 님이 2013년 10월 14일 질문

1개의 답변

0 추천
 
채택된 답변
String ff = buffer.toString();
 
부분을 String ff = new String(buffer); 로 바꿔 보세요.
사악미소 (65,330 포인트) 님이 2013년 10월 14일 답변
앤드류이드님이 2013년 10월 15일 채택됨
안되네여. 다른 문제 같아요...
Log.d(TAG, ""+buffer[i]); 가 찍히고 Exception으로 가진 않는거죠?
그렇다면 인코딩을 확인 해보세요..
인코딩을 지원 못 해서 그럴 수 있습니다.
파일의 인코딩을 UTF-8로 수정하여 저장 하던지 String ff = new String(buffer, "인코딩 값"); 형식으로 string을 만드세요 .
...