Androidはテキストファイルに新しい行を書き込みません
-
26-10-2019 - |
質問
Androidのテキストファイルに新しい行を書き込もうとしています。
これが私のコードです:
FileOutputStream fOut;
try {
String newline = "\r\n";
fOut = openFileOutput("cache.txt", MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write(data);
osw.write(newline);
osw.flush();
osw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
私が試してみました \n
, \r\n
また、新しいラインのシステムプロパティを取得しようとしましたが、どちらも機能しませんでした。
データ変数には、同じファイルからの以前のデータが含まれています。
String data = "";
try {
FileInputStream in = openFileInput("cache.txt");
StringBuffer inLine = new StringBuffer();
InputStreamReader isr = new InputStreamReader(in, "ISO8859-1");
BufferedReader inRd = new BufferedReader(isr,8 * 1024);
String text;
while ((text = inRd.readLine()) != null) {
inLine.append(text);
}
in.close();
data = inLine.toString();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
解決
私は同様のプログラムを実行しましたが、それは私のために働きました。しかし、私は奇妙な行動を観察しました。これらの新しい行をファイルに追加しましたが、カーソルは最初の行に残りました。確認したい場合は、書いてください String
あなたの新しいキャラクターの後、あなたはそれが String
これらの新しい行のすぐ下に書かれています。
他のヒント
私は同じ問題を抱えていました、本のすべてのトリックを試しました。
私の問題:Newlineのものは書かれていましたが、読んでいる間、それらは削除されました:
while (readString != null) {
datax.append(readString);
readString = buffreader.readLine();
}
ファイルは線ごとに読み取りされ、連結されていたため、Newlineは消えました。
携帯電話のどこを見るべきかわからなかったので、メモ帳などの元のファイルを見ませんでした。ログスクリーンは、NewLineのコードを使用しました:-(
だから、単純な魂は読んでいる間にそれを元に戻すことでした:
while (readString != null) {
datax.append(readString);
datax.append("\n");
readString = buffreader.readLine();
}
私は同じ問題を抱えていて、新しいラインを書くことができませんでした。代わりに、bufferdwritterを使用してファイルに新しい行を書き込みます。これがサンプルコードスナップレットです:
OutputStreamWriter out = new OutputStreamWriter(openFileOutput("cache.txt",0));
BufferedWriter bwriter = new BufferedWriter(out);
// write the contents to the file
bwriter.write("Input String"); //Enter the string here
bwriter.newLine();
所属していません StackOverflow