Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符附加到某个文件";“字符串”;在爪哇_Java_String_Java.util.scanner_Filewriter - Fatal编程技术网

Java 如何将字符附加到某个文件";“字符串”;在爪哇

Java 如何将字符附加到某个文件";“字符串”;在爪哇,java,string,java.util.scanner,filewriter,Java,String,Java.util.scanner,Filewriter,但对我来说,它是在一个新行之后添加的…如下所示 需要输出文件如下 您可以将Bufferwriter与fileWriter一起使用,并使用Bufferwriter的append方法,它将追加到文本中,而不是创建新行 例如 原始文件已包含结束新行。因此,如果您在原始文件中附加了一些内容,它将在新行之后写入 更糟糕的是,扫描器是一个高级对象,它不允许您知道文件中内部光标的确切位置,因为它在内部读取大缓冲区(对于证书文件,整个文件可能一次读取) 因此,您应该使用一个RandomAccessFile及其

但对我来说,它是在一个新行之后添加的…如下所示

需要输出文件如下

您可以将Bufferwriter与fileWriter一起使用,并使用Bufferwriter的append方法,它将追加到文本中,而不是创建新行

例如


原始文件已包含结束新行。因此,如果您在原始文件中附加了一些内容,它将在新行之后写入

更糟糕的是,
扫描器
是一个高级对象,它不允许您知道文件中内部光标的确切位置,因为它在内部读取大缓冲区(对于证书文件,整个文件可能一次读取)

因此,您应该使用一个
RandomAccessFile
及其关联的
FileChannel
来记录每行开头的位置,并在可能的行尾之前截断该文件

代码可以变成:

 File filename = new File("D:/text.txt");
 FileWriter fileWritter = new FileWriter(filename,true);
 BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
 bufferWritter.append(",wirte123");
 bufferWritter.close();
 fileWritter.close(); 

您的文件已包含该换行符。若要获得所需的结果,您必须先删除该字符,然后附加字符串。可能新行字符已在原始文件中(编辑:如他所说)能否建议我,如何断开新行字符?@String获取整个文件的内容,然后检查最后一个字符,如果“\n”或“\r\n”,则替换为空字符串。之后,您可以附加内容。请看这里:
 File filename = new File("D:/text.txt");
 FileWriter fileWritter = new FileWriter(filename,true);
 BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
 bufferWritter.append(",wirte123");
 bufferWritter.close();
 fileWritter.close(); 
    RandomAccessFile fw = new RandomAccessFile(filename, "rw");
    FileChannel fc = fw.getChannel();
    long oldpos;
    while (true) {
        oldpos = fc.position();
        final String lineFromFile = fw.readLine();

        if (lineFromFile.contains("-----END CERTIFICATE REQUEST-----")) {
            System.out.println("I found "  +filename.getName());*/
            fc.truncate(oldpos + lineFromFile.length());
            fw.writeBytes(",wirte123");//appends the string to the file
            break;
        }
    }
    fw.close();