在java中跳过一个字符

时间:2014-10-17 19:24:10

标签: java bufferedreader

我正在尝试编写一个从一个文件读取数据并将其写入另一个文件的代码,它还应该包含它应该从我的输入文件中跳过特定字符然后将其写入另一个文件的功能。

import java.io.*;
class Test {
    public static void main(String[] args) throws IOException {
        //Opening the streams
        FileReader in = new FileReader("input.txt");
        BufferedReader br = new BufferedReader( in );
        FileWriter out = new FileWriter("output.txt");
        BufferedWriter bw = new BufferedWriter(out);
        int c = 0;
        while ((c = in.read()) != -1) {
            in .read();
            bw.write((char) c);
        }
        br.close();
        bw.close();
    }
}

假设我想从输入文件数据中跳过字符a,我的输入文件包含Name: abc

我希望将Nme: bc写入其输出文件中。但相反,我在输出文件中得到Nm:bc

我也尝试在其中使用skip() BufferedReader方法,但仍未提供正确的输出。

1 个答案:

答案 0 :(得分:2)

skip()不是你想要的。你还有一个额外的read()调用,所以循环读取两个字符,但只写了其中一个。只检查你的角色,如果你想要跳过它,就不要写它:

while ((c = in.read()) != -1) {
  char asChar = (char) c;
  if (asChar != charToSkip)
    bw.write(asChar);
}