我a.txt
列表试图到第一线移动到最后一行在Java中移动.txt文件的第一行到最后一行
我发现脚本来完成以下
- 查找输入文件中的“文本”并输出到临时文件。 (我可以设置 “文本”的字符串buffRead.readLine?),然后...
- 删除原稿文件并重新命名新文件到原稿?
请给我我是新来的Java,但我做了大量的研究,无法找到我认为是一个简单的脚本的解决方案。
我a.txt
列表试图到第一线移动到最后一行在Java中移动.txt文件的第一行到最后一行
我发现脚本来完成以下
请给我我是新来的Java,但我做了大量的研究,无法找到我认为是一个简单的脚本的解决方案。
因为这是Java和关注文件IO,这是一个不平凡的设置。算法本身很简单,但所需的符号并不是立即可见的。
BufferedReader reader = new BufferedReader(new FileReader("fileName"));
这给你一个简单的方法来读取文件fileName
的内容。
PrintWriter writer = new PrintWriter(new FileWriter("fileName"));
这给你一个简单的写入文件的方法。这样做的API是完全相同的System.out
当你使用一个PrintWriter
,因此我选择在这里使用一个。
此时它读取文件,并呼应它放回正确的顺序一件简单的事情。
String text = reader.readLine();
这会将文件的第一行保存到text
。
while (reader.ready()) {
writer.println(reader.readLine());
}
虽然reader
有留在它的文本,打印进线writer
。
writer.println(text);
打印您在开始时保存的行。
需要注意的是,如果你的程序做任何东西(它只是一个良好的习惯是这样),你要关闭你的IO流,以避免泄漏资源。
reader.close();
writer.close();
或者,你也可以包住整个事情的try-with-resources自动执行相同的清洁。
Scanner fileScanner = new Scanner(myFile);
fileScanner.nextLine();
这将从文件返回文本的第一行,并丢弃它,因为你不存储任何地方。 覆盖现有文件:
FileWriter fileStream = new FileWriter("my/path/for/file.txt");
BufferedWriter out = new BufferedWriter(fileStream);
while(fileScanner.hasNextLine()) {
String next = fileScanner.nextLine();
if(next.equals("\n") out.newLine();
else out.write(next);
out.newLine();
}
out.close();
请注意,您必须捕捉和处理一些IOExceptions
这种方式。此外,if()
... else(
)...语句在while()
循环必要保留的换行符出现在你的文本文件。
同一行添加到该文件的最后一行看看这个链接https://stackoverflow.com/a/37674446/6160431
阅读的第一行,并存储为一个字符串,然后读取文件的其余部分,各行输出到新文件。最后,在新文件的末尾写上第一行。很简单,你准时回家吃玉米片。 –