是否有任何与列表一起跳转下一行的功能?

问题描述 投票:0回答:2

尝试读取文本文件并将内容添加到数组列表,而不是写入新的文本文件,但它的格式与原始文件的格式不同。我希望它与原始文件的格式相同。

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的骄傲和偏见是一个普遍承认的真理,一个拥有好运的男人必须缺少一个妻子

java arraylist filewriter file-read
2个回答
0
投票

您需要在写入文件时添加行分隔符

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

0
投票

为什么你从文件中读取行,将它们转换为小写,修剪它们然后将它们添加到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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.