[英]JAVA String Reversing order of string in file io
我必須編寫代碼,以顛倒字符串的順序並將其寫入新文件。 例如 :
嗨,我叫鮑勃。
我是十歲。
相反將是:
我是十歲。
嗨,我叫鮑勃。
到目前為止,這就是我所擁有的。 不知道為outWriter打印語句寫什么。 任何幫助將不勝感激。 謝謝!
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class FileRewinder {
public static void main(String[] args) {
File inputFile = new File("ascii.txt");
ArrayList<String> list1 = new ArrayList<String>();
Scanner inputScanner;
try {
inputScanner = new Scanner(inputFile);
} catch (FileNotFoundException f) {
System.out.println("File not found :" + f);
return;
}
while (inputScanner.hasNextLine()) {
String curLine = inputScanner .nextLine();
System.out.println(curLine );
}
inputScanner.close();
File outputFile = new File("hi.txt");
PrintWriter outWriter = null;
try {
outWriter = new PrintWriter(outputFile);
} catch (FileNotFoundException e) {
System.out.println("File not found :" + e);
return;
}
outWriter.println(???);
outWriter.close();
}
}
我的建議是先讀取整個文件,然后將句子(可以用.
分割)存儲在LinkedList<String>
(這將保持插入順序)
然后使用Iterator
並以相反的順序獲取句子。 並將它們寫入文件。 確保放.
在每個句子之后。
在System.out.println(curLine );
添加list1.add(curline);
將您的文字行放入列表中。
最后,向后遍歷list1
創建一個循環:
for(int i = list1.size() - 1 , i > 0, --i) {
outWriter.println(list1[i]);
}
如果文件包含可以加載到內存中的行數。 您可以將所有行讀入列表,顛倒列表的順序,然后將列表寫回到磁盤。
public class Reverse {
static final Charset FILE_ENCODING = StandardCharsets.UTF_8;
public static void main(String[] args) throws IOException {
List<String> inLines = Files.readAllLines(Paths.get("ascii.txt"), FILE_ENCODING);
Collections.reverse(inLines);
Files.write(Paths.get("hi.txt"), inLines, FILE_ENCODING);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.