1

元の文字列には改行があります。あるアクティビティで文字列を保存し、別のアクティビティで取得しています。

ここで、内部ストレージへの書き込みに使用するコード

try {
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput(FILENAME, Context.MODE_PRIVATE));
            outputStreamWriter.write(strText);
            outputStreamWriter.close();
        }
        catch (IOException e) {
            Log.e("Exception", "File write failed: " + e.toString());
        } 

これが私が読むために使用するコードです

InputStream inputStream = openFileInput(FILENAME);

                if ( inputStream != null ) {
                    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                    String receiveString = "";
                    StringBuilder stringBuilder = new StringBuilder();

                    while ( (receiveString = bufferedReader.readLine()) != null ) {
                        stringBuilder.append(receiveString);
                    }

                    inputStream.close();
                    ret = stringBuilder.toString();
                }
            }
            catch (FileNotFoundException e) {
                Log.e("login activity", "File not found: " + e.toString());
            } catch (IOException e) {
                Log.e("login activity", "Can not read file: " + e.toString());
            }

            SomeArray.add(ret);

コードが機能する唯一の問題は、改行が失われることです。

4

2 に答える 2

3

whileループをに変更して修正しました

 while ( (receiveString = bufferedReader.readLine()) != null ) {

                        ret += receiveString + "\n";
                    }
于 2013-12-02T00:05:11.010 に答える
0

readLine は行末文字を削除します: http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html#readLine()

read メソッドを使用して、一度に適切なチャンクでファイルを読み取り、それらのチャンクを連結します。エンドラインはこのように保持されます。

于 2013-12-02T00:01:41.443 に答える