Ade*_*ngh 8 java io file-io filereader filewriter
我想用java程序删除一些文件内容,如下所示.这是要在同一文件中替换的write方法,还是应该将其复制到另一个文件中.
但它删除了文件的所有内容.
class FileReplace
{
ArrayList<String> lines = new ArrayList<String>();
String line = null;
public void doIt()
{
try
{
File f1 = new File("d:/new folder/t1.htm");
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);
while (line = br.readLine() != null)
{
if (line.contains("java"))
line = line.replace("java", " ");
lines.add(line);
}
FileWriter fw = new FileWriter(f1);
BufferedWriter out = new BufferedWriter(fw);
out.write(lines.toString());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
public statc void main(String args[])
{
FileReplace fr = new FileReplace();
fr.doIt();
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*usz 14
我会先关闭读者,然后冲洗作家:
public class FileReplace {
List<String> lines = new ArrayList<String>();
String line = null;
public void doIt() {
try {
File f1 = new File("d:/new folder/t1.htm");
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);
while ((line = br.readLine()) != null) {
if (line.contains("java"))
line = line.replace("java", " ");
lines.add(line);
}
fr.close();
br.close();
FileWriter fw = new FileWriter(f1);
BufferedWriter out = new BufferedWriter(fw);
for(String s : lines)
out.write(s);
out.flush();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String args[]) {
FileReplace fr = new FileReplace();
fr.doIt();
}
}
Run Code Online (Sandbox Code Playgroud)
San*_*ian 11
接受的答案很棒.但是,有一种更简单的方法可以使用Apache的commons-io库替换文件中的内容(commons-io-2.4.jar- 您可以使用任何最新版本)
private void update() throws IOException{
File file = new File("myPath/myFile.txt");
String fileContext = FileUtils.readFileToString(file);
fileContext = fileContext.replaceAll("_PLACEHOLDER_", "VALUE-TO-BE-REPLACED");
FileUtils.write(file, fileContext);
}
Run Code Online (Sandbox Code Playgroud)
注意:IOException应由应用程序相应地捕获和处理抛出.
| 归档时间: |
|
| 查看次数: |
66452 次 |
| 最近记录: |