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();