尝试读取文本文件并将内容添加到数组列表,而不是写入新的文本文件,但它的格式与原始文件的格式不同。我希望它与原始文件的格式相同。
public static void main(String args[]) throws IOException
{
Scanner sc1 = new Scanner(new File("C:\\Users\\amank\\eclipse-workspace\\DataStructures\\src\\sample1-pp.txt"));
ArrayList<String> list = new ArrayList<String>();
//testing
FileWriter writer = new FileWriter ("C:\\Users\\amank\\eclipse-workspace\\DataStructures\\src\\output.txt");;
if(!sc1.hasNext())
{
System.out.println("File is empty");
}
try {
while (sc1.hasNext())
{
list.add(sc1.nextLine().trim().toLowerCase().replaceAll("\\p{P}", ""));
}
sc1.close();
//for testing
for(String str: list)
{
writer.write(str);
}
writer.close();
傲慢与偏见
简·奥斯汀
第1章
这是一个普遍公认的真理,一个拥有好运的男人必须缺少一个妻子。
======
jane austenchapter 1it的骄傲和偏见是一个普遍承认的真理,一个拥有好运的男人必须缺少一个妻子
您需要在写入文件时添加行分隔符
public static void main(String args[]) throws IOException{
Scanner sc1 = new Scanner(new File("C:\\Users\\amank\\eclipse-workspace\\DataStructures\\src\\sample1-pp.txt"));
ArrayList<String> list = new ArrayList<String>();
//testing
FileWriter writer = new FileWriter ("C:\\Users\\amank\\eclipse-workspace\\DataStructures\\src\\output.txt");;
if(!sc1.hasNext())
{
System.out.println("File is empty");
}
try {
while (sc1.hasNext())
{
list.add(sc1.nextLine().trim().toLowerCase().replaceAll("\\p{P}", ""));
}
sc1.close();
//for testing
String newLine = System.getProperty("line.separator");
for(String str: list)
{
writer.write(str+newLine);
}
writer.close();
为什么你从文件中读取行,将它们转换为小写,修剪它们然后将它们添加到ArrayList ...?只需按行添加行到ArrayList即可
public static void main(String args[]) {
try {
Scanner sc1 = new Scanner(new File("C:\\Users\\amank\\eclipse-workspace\\DataStructures\\src\\sample1-pp.txt"));
ArrayList<String> list = new ArrayList<String>();
//testing
FileWriter writer = new FileWriter("C:\\Users\\amank\\eclipse-workspace\\DataStructures\\src\\output.txt");;
if (!sc1.hasNext()) {
System.out.println("File is empty");
}
while (sc1.hasNext()) {
list.add(sc1.nextLine());
}
sc1.close();
//for testing
for (String str : list) {
writer.write(str);
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}