2012-05-03 119 views
4

所以我使用文件来保存我的程序的一些分数,但问题是我不能只是打印它们。我tryed几件事情,但我没有找到合适的人的是我的代码:字节到字符串android

try{ 
     String FILENAME = "FrogScoreFile"; 
     FileInputStream fos = openFileInput(FILENAME); 
     byte[] b = new byte[1]; 
     fos.read(b); 
     fos.close(); 
     String score= String b; 
     game5HighScore.setText(b); 
     }catch (java.io.FileNotFoundException e) { 
     } catch (IOException e) { 
       e.printStackTrace(); 
    } 
+1

youre做的方式是wrong..change这个'串得分=字符串B;''来串得分=新的String(B);'和顺便说一句,你需要'game5HighScore.setText(得分) ;'而不是'game5HighScore.setText(b);' – COD3BOY

回答

15

您可以通过创建new string对象转换Byte array为字符串。

byte[] b = new byte[1]; 
fos.read(b); 
fos.close(); 
String message = new String(b); 
0
try{ 
     String FILENAME = "FrogScoreFile"; 
     FileInputStream fos = openFileInput(FILENAME); 
     BufferedReader br = new BufferedReader(new InputStreamReader(fos)); 
     String yourText = br.readLine(); 
     br.close(); 
     game5HighScore.setText(yourText); 
    }catch (java.io.FileNotFoundException e) { 
    } catch (IOException e) { 
      e.printStackTrace(); 
} 

的方式。为什么不用SharedPreferences或SQLite数据库保存你的分数?

SharedPrefrences Guide.

public static void saveScore(Context context) { 
    final SharedPreferences.Editor editor = context.getSharedPreferences(
      "settings", Context.MODE_PRIVATE).edit(); 
    editor.putInt("score", 100); 
    editor.commit(); 
} 

public static int readScore(Context context) { 
    final SharedPreferences sp = context.getSharedPreferences("settings", 
      Context.MODE_PRIVATE); 
    return sp.getInt("score", 0); 
} 
+0

我不真的得到sharedpreferences,因为我没有找到一个好的指导 – stevedc

+0

我编辑答案。你可以找到sharedprefrence指南。 –

+0

从谷歌我已经收到它,但我没有放弃得到它。我需要一个很好的例子来看看它 – stevedc