Java BufferedReader和BufferedWriter

Java BufferedReader和BufferedWriter,java,bufferedreader,bufferedwriter,Java,Bufferedreader,Bufferedwriter,我有一个.txt文件。我想要一行从'>'开始,然后,第一个项目符号'•'被写入'>>•'。我使用: br = new BufferedReader(new FileReader("C:\\Users\\User\\Desktop\\text.txt")); bw = new BufferedWriter(new FileWriter("C:\\Users\\User\\Desktop\\text.txt")); while ((current_line = br.readLin

我有一个.txt文件。我想要一行从'>'开始,然后,第一个项目符号'•'被写入'>>•'。我使用:

br = new BufferedReader(new FileReader("C:\\Users\\User\\Desktop\\text.txt"));
bw = new BufferedWriter(new FileWriter("C:\\Users\\User\\Desktop\\text.txt"));

        while ((current_line = br.readLine()) != null) {
            if (current_line.length() > 1 && (current_line.charAt(0) == '>' || current_line.charAt(1) != '>'))  {
                found = true;
            }
            if ((found) && (current_line.length() > 1) && current_line.charAt(0) == '•') {
                bw.write(">>");
                found = false;
            }
        }
        br.close();
        bw.close();

但结果是。。空的.txt文件?我做错了什么?非常感谢

哪里是
bw.write(行);写入(“\r\n”)

很遗憾,您不能在此处写入同一文件

反斜杠也必须在Java字符串中转义


最好将
found
命名为
tackleBullet

输入文件、输出文件和源代码使用什么编码?您正在从/向同一文件读写。项目符号是否在同一行?您还想写其他行吗?不,它总是在另一行中,在“>”之后,是第一个字符,为什么不改为说:line=readline();如果第行以(“>”)开头,则第行替换(项目符号“>>”);然后写出每一行?或者关闭文件,保存结果,打开并再次写入。使用
System.lineSeparator()
(自Java 7以来)或
System.getProperty(“path.separator”)
(Java 6或更早版本)而不是naive
“\r\n”
@LuiggiMendoza抱歉,我在家使用Linux,为了创建Windows的文本文件,我被迫在Linux上执行
“\r\n”
。我特别想防止懒惰的打字机使用
“\n”
。不过,谢谢你告诉OP官方的方法。
try (br = new BufferedReader(new FileReader("C:\\Users\User\Desktop\\text.txt");
    bw = new BufferedWriter(new FileWriter("C:\\Users\\User\Desktop\\text-2.txt")) {

    String current_line;
    while ((current_line = br.readLine()) != null) {
        if (current_line.length() > 1 && (current_line.charAt(0) == '>' || current_line.charAt(1) != '>'))  {
            found = true;
        }
        if (found && current_line.startsWith("•")) {
            bw.write(">>");
            found = false;
        }
        bw.write(line);
        bw.write("\r\n"):
    }
}