2013-07-05 4 views
0

Когда я ввожу файл и пытаюсь извлечь из него печатные строки и удваивает его, я в конечном итоге извлекаю информацию о самом тексте. Я вставил System.out.println в мой цикл while, чтобы напечатать строки из файла, а также напечатать дополнительные строки текстовой информации. Я пытаюсь получить только написанный текст из файла, игнорируя строки, которые выглядят как:Извлечение строк данных из .txt-файла

\ пард \ tx720 \ tx1440 \ tx2160 \ tx2880 \ tx3600 \ tx4320 \ tx5040 \ tx5760 \ tx6480 \ tx7200 \ tx7920 \ tx8640 \ ql \ qnatural \ pardirnatural "

Я делаю это, поэтому я могу взять информацию из файла, чтобы сделать с ними строковые массивы. Целью этой программы будет ввод файла с строками информации (фамилия (строка), имя (строка), баланс счета (двойной)), извлекать каждую строку отдельно, помещать каждую строку строки в список массивов, сортировать список массивов (по имени, затем по имени), затем выводить файл с именем output.txt с новыми отсортированными строками. Строки будут отформатированы по имени, имени, затем балансу счета с одним sp туз между ними. Количество строк может меняться.

Пример ввода (из текстового файла):

Смит Чарльз 200,000

Аллен Дрейк 5000,00

Allen Трей 300,00

Burbis Zeik 400,00

Зан Рик 6000,00

Пример вывода (записывается в файл output.txt):

Аллен Дрейк 5000,00

Allen Трей 300,00

Burbis Zeik 400,00

Смит Чарльз 200,000

Зан Рик 6000,00

Спасибо!

public static void main(String[] args) throws IOException { 
    Scanner fileName = new Scanner(System.in); 
    String file = fileName.next(); 
    String input; 
     Scanner fileinput = null; 
    // File inFile = new File("c:\\csc2310\\test.txt"); 
     File inFile = new File(file); 
    int i = 0; 
     try 
     { 
     fileinput = new Scanner(inFile); 
     while(fileinput.hasNext()) 
     { 

      i++; 
      System.out.println(i); 
      input = fileinput.nextLine(); 
      System.out.println(input); 
     } 
     fileinput.close(); 
     }catch(FileNotFoundException e) 
     { 
     System.out.println(e); 
     System.exit(1); 
     } 
     finally 
     { 
      fileinput.close(); 
     } 
} 
+5

Покажите нам свои данные и ожидаемый результат. –

+0

Я действительно не понимаю, что вы пытаетесь сделать, но, может быть, ваша проблема в том, что вы используете 'println' вместо' print'? – 2rs2ts

+0

Ваш вопрос очень неясен. Пожалуйста, отредактируйте свою запись и включите некоторые примеры ввода и вывода. –

ответ

-1

Ваша строка испорчена. Java при чтении автоматически добавит \ characters с \.

Таким образом, вы получаете

"\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural" 

Единственное, что вы можете быть в состоянии, возможно сделать, это прочитать строку как массив байтов и удалить байт эквивалентную \. Проверьте, возможно ли это

0

Проблема связана с тем, как TextEdit (текстовый редактор Mac OS) сохраняет файлы .text. Я написал одну и ту же информацию в JEdit и сохранил ее с тем же расширением и исключил все строки текстовой информации. Спасибо за ваше время.

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