3

ファイルから読み取った文字列を返す FileInputStream に基づく関数があります。しかし、なぜ戻り値が空なのですか。関数の戻り値は MainActivity に表示されます。この機能は、私のアプリのサービスの一部です。

public static String UserLoginFile;
public static String UserPassFile;

    public String LoadUserInfopassFromFilePostData() {  
    String FILENAME = "TeleportSAASPass.txt";
    FileInputStream inputStream = null;
    if(UserLoginFile != null){
    try {
        inputStream = openFileInput(FILENAME);
        byte[] reader = new byte[inputStream.available()];
        while (inputStream.read(reader) != -1) {}
        UserPassFile = new String(reader);
 //   Toast.makeText(getApplicationContext(), "GPSTracker " + UserPassFile, Toast.LENGTH_LONG).show();
    } catch(IOException e) {
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
            }
        }
    }
    }
   return UserPassFile;
 }  

彼女がファイルから読み取った文字列を返すように関数を修正する方法を教えてください。

4

2 に答える 2

2

入力ストリームリーダーを使用することをお勧めします。http://developer.android.com/reference/java/io/InputStreamReader.htmlを確認して ください。コードは次のようになります。

inputStream = openFileInput(FILENAME);
InputStreamReader( inputstream, "UTF_8"), 8);
StringBuilder response = new StringBuilder();
String line;
//Read the response from input stream line-wise

while((line = reader.readLine()) != null){ 
response.append(line).append('\n');
}

//Create response string
result = response.toString();
//Close input stream
reader.close();
于 2013-06-04T17:53:53.727 に答える