281~名前~場所~@time@room% @time2@room2 % @time3@room3; テキスト ファイルの % の後の 2 行目を削除する必要があります。しかし、私はそれを行う方法がわかりません。
質問する
1779 次
1 に答える
0
BufferedReader in = null;
out = null;
File sdCard = Environment.getExternalStorageDirectory();
File root = new File (sdCard.getAbsolutePath() + "/yourFile");
try {
InputStream instream = new FileInputStream(file);
in = new BufferedReader(new InputStreamReader(instream));
out = new PrintWriter(new File(root,"yournewFile));
String line; //a line in the file
while ((line = in.readLine()) != null) {
if (!Pattern.matches("^some pattern.*",line)) { //find the line we want to delete
//if it is not the line you want to delete then write it to new file
out.println(line);
}
}
in.close();
out.flush();
out.close();
File oldFile = new File (root,"/yourFile");
oldFile.delete();
File newFile = new File (root,"/yournewFile");
newFile.renameTo(oldFile);
}catch(Exception e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
古いファイルを読み取って、削除したい行と一致させる必要があります。削除したい行でない場合は、別のファイルに書き込んでください。したがって、削除したい行だけが欠落している新しいファイルが取得されます。 . それが役立つことを願っています。
于 2013-01-12T05:50:37.330 に答える