在我的下面代码中,我想替换文字" DEMO"与人口统计数据"但不是替换文本,而是删除文本文件的整个内容。
文件内容: DEMO 数据 早晨
PS:我是java的初学者
package com.replace.main;
import java.io.*;
public class FileEdit {
public static void main(String[] args) {
BufferedReader br = null;
BufferedWriter bw = null;
String readLine, replacedData;
try {
bw = new BufferedWriter(
new FileWriter(
"Demg.ctl"));
br = new BufferedReader(
new FileReader(
"Demg.ctl"));
System.out.println(br.readLine()); //I Get Null Printed Here
while ((readLine = br.readLine())!= null) {
System.out.println("Inside While Loop");
System.out.println(readLine);
if (readLine.equals("DEMO")) {
System.out.println("Inside if loop");
replacedData = readLine.replaceAll("DEMO","Demographics");
}
}
System.out.println("After While");
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
你打开一个Writer到你的文件,但你没有写任何东西。这意味着您的文件将替换为空文件。
除此之外,你还需要关闭你的作家,而不仅仅是读者。
最后但并非最不重要的是,你的if条件是错误的。
if (readLine.equals("DEMO")) {
应该阅读
if (readLine.contains("DEMO")) {
否则只有当你的行包含“DEMO”而没有其他内容时它才会返回true。
答案 1 :(得分:0)
I'm updating the answer to my own question.
package com.replace.main;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileEdit
{
public static void main(String args[])
{
try
{
BufferedReader reader = new BufferedReader(new FileReader("Demg.ctl"));
String readLine = "";
String oldtext = "";
while((readLine = reader.readLine()) != null)
{
oldtext += readLine + "\r\n";
}
reader.close();
// To replace the text
String newtext = oldtext.replaceAll("DEMO", "Demographics");
FileWriter writer = new FileWriter("Demg.ctl");
writer.write(newtext);
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}