2014-03-12 4 views
0

그래서 제목은 내가 float 값으로 문자열 값을 구문 분석하려고하지만이 같은 숫자 형식 예외가 발생했습니다 잘못된 float : "3 ??. ?? 5 ?? 2 " 실제 수는 3.52입니다. 오, 그리고 나를 괴롭히는 조각에서 다하고있어. 또한 파일에 저장하는 경우이 Float 값에 DecimalFormats를 사용하지 않습니다. 그래서 내가 뭘 잘못하고 있니?문자열에서 부동으로 구문 분석

file = new File(Environment 
      .getExternalStorageDirectory() 
      + File.separator 
      + "userZinsenArray.txt"); 

save.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      String outputString = ""; 
      try { 

       if (!file.exists()) 
        file.createNewFile(); 
       System.out.println("file exists:" + file.exists()); 
       FileOutputStream stream = new FileOutputStream(file); 
       DataOutputStream ps = new DataOutputStream(stream); 
       for (int i = 0; i < MainActivity.prozentenArray.size(); i++) { 
        outputString+=(""+MainActivity.prozentenArray.get(i)); 
        outputString+="\n"; 
       } 
       ps.writeChars(outputString); 
       ps.close(); 
       stream.close(); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 

load.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      String line=null; 
       try { 
        InputStream in = new FileInputStream(file); 
        InputStreamReader input = new InputStreamReader(in); 
        BufferedReader buffreader = new BufferedReader(input); 
        while ((line = buffreader.readLine()) != null) { 
         MainActivity.prozentenArray.add(Float.parseFloat(line));        
        } 
        in.close(); 
       } catch(NumberFormatException e){ 
        System.out.println("numberFormatException: "+e.getMessage()); 
       }catch(Exception e){ 
        System.out.println("other exp: "+e.getMessage()); 
       } 

     } 
    }); 
+0

잘, 일부 파일에서 읽고, 확인 파일이'와 선을 포함하는 경우 :(
내가 읽고있다 방법은/파일을 작성하는 것은 이것이다 3 ??. ?? 5 ?? 2' – donfuxx

+0

인코딩 문제? –

+0

파일 자체에 물음표가 표시되지 않거나 표시 할 수 없습니다. 그냥 input.getEncoding() 내 InputStreamReader를 확인하고 매번 –

답변

0

이 시도 :

InputStreamReader input = new InputStreamReader(in, "UTF-8"); 
+0

UTF8 보여줍니다 또는 사용 'StandardCharsets.UTF_8' – donfuxx

+0

내 인코딩을 변경해도 InputStreamReader 입력이 이미 U를 사용하는 데 도움이되지 않습니다. TF8 (input.getEncoding()으로 확인) –

관련 문제