2015-10-10 3 views
0

Я пытаюсь написать программу, которая будет читать файл, скопировать его и изменить текст, означающий, что последнее слово в документе теперь первое. Созданный мной метод не обращается при перемещении в выходной файл.Java-Обратный текст в документе

public static ArrayList<String> fileLines(String filename) throws FileNotFoundException { 
    ArrayList<String> lines = new ArrayList<String>(); 
    Scanner fileRead = new Scanner(new File(filename)); 
    while (fileRead.hasNextLine()) { 
     String line = fileRead.nextLine(); 
     lines.add(line); 
    } 
    fileRead.close(); 
    return lines; 
} 

public static void writeLinesReverse(ArrayList<String> lines, String filename) throws FileNotFoundException { 
    PrintWriter fileWrite = new PrintWriter(new File(filename)); 
    for (int i = lines.size() - 1; i > -1; i--) { 
     fileWrite.write(lines.get(i)); 
    } 
    fileWrite.close(); 
} 
} 

ответ

0

Почему бы вам не использовать Collections.reverse, чтобы полностью изменить Список_массивов

Может быть что-то вроде этого

//reverse list 
Collections.reverse(lines); 

for (String s: lines) { 
    //write to file 
} 

Docs

0

// Reverse полную линию

while (fileRead.hasNextLine()) { 
     String line = fileRead.nextLine(); 
     lines.add(new StringBuffer(line).reverse().toString()); 
    } 

вход: переполнение Stack

выход: wolfrevo kcatS

Если вы хотите, чтобы изменить содержание слова в каждой строке,

1) Сначала прочитайте строку

2) Используйте функцию split(), чтобы получить отдельные слова в строке

3) Создайте StringBuffer для каждого слова и отмените его, как показано выше.

Если вы будете следовать этому подходу,

выход будет

kcatS wolfrevo

Смежные вопросы