Есть ли какая-либо функция для использования со списком для перехода на следующую строку? - PullRequest
0 голосов
/ 20 апреля 2019

Попытка чтения текстового файла и добавления содержимого в список массивов, а затем запись в новый текстовый файл, но он не отображается в том же формате, что и исходный файл. Я хочу, чтобы он был в том же формате, что и исходный файл.

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

Это общепризнанная истина, что одинокий мужчина, обладающий удачей, должен нуждаться в жене.

======

Фактический

гордость и предубеждение Джейн Остин, глава 1 Это общепризнанная истина о том, что одинокий мужчина, обладающий удачей, должен нуждаться в жене

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Вам нужно добавить разделитель строк при записи в файл

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 голосов
/ 20 апреля 2019

Почему вы читаете строки из файлов, конвертируете их в строчные буквы, обрезаете их и затем добавляете их в 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();
    }
}
...