我有a.txt
列表试图将第一行移到Java的最后一行
我发现脚本可以执行以下操作
请告诉我,我是Java的新手,但是我已经做了很多研究,无法找到我认为简单的脚本的解决方案。
答案 0 :(得分:3)
因为这是Java并且涉及文件IO,所以这是一个非常重要的设置。算法本身很简单,但这样做的符号并不是很明显。
private void UploadProgessEvent(Google.Apis.Upload.IUploadProgress obj)
{
label1.Text = ((obj.ByteSent*100)/TotalSize).ToString() + "%";
// update your ProgressBar here
}
这使您可以轻松地阅读文件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
打印您在开始时保存的行。
请注意,如果您的程序执行其他任何操作(并且它只是一个好习惯),您希望关闭IO流以避免资源泄漏。
writer.println(text);
或者,您也可以将整个事物包装在try-with-resources中以自动执行相同的清理。
答案 1 :(得分:1)
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