2014-01-11 2 views
0

Я использую Scanner, чтобы прочитать файл с разным расширением, который обычно имеет текстовый файл, но с тем же содержимым, что и текстовый файл. Если я использую Scanner на text.txt расширение, то я выхожу, но когда я выполняю ту же задачу на другом расширении, но с тем же содержимым, что я вообще не получаю никакого вывода.Java Scanner null out put

После выполнения другого теста, он видел, что проблема есть эти символы: “ ”

Любой ключ, почему же файл с другим расширением получили различные модели поведения?

файл:

“1 line” 
2nd line 
3 rd line 

код:

public static void main(String[] args) 

{ 
    String path = "C:\\Users\\user\\Documents\\t1.RANDOM"; 

    File file = new File(path); 
    StringBuilder sb = new StringBuilder(); 
    try { 
     Scanner sc = new Scanner(file); 
     while(sc.hasNextLine()) 
     { 
      sb.append(sc.nextLine()+"\n"); 
     } 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    System.out.println(sb); 
} 
+0

Попробуйте напечатать 'file.exists()', чтобы увидеть, существует ли файл. Вы можете пойти по неправильному пути. Кроме того, используйте @ "PATH ЗДЕСЬ БЕЗ ДВОЙНЫХ" –

+0

@OrelEraki Вот почему существует 'FileNotFoudException'. Конструктор Scanner (File) выдает его, когда файл не существует + требуется double \\, обратная косая черта должна быть экранирована в строковом литерале. – A4L

+0

@OrelEraki, это была моя первая мысль, но нормальный, если файл не исключает exsist, позаботится об этом. Эти файлы существуют в таком местоположении. Существует другая проблема, которую я не могу найти = S – user1768615

ответ

1

Я мог бы думать Scanner делает различный поток чтения, если он не идентифицирует известное расширение. Возможно, попробуйте использовать следующий конструктор:

Scanner sc = new Scanner(file, "UTF-8"); 
+0

Нашел уже ответ в google хе-хе, но так как ты написал его здесь, у тебя есть +1 и лучший ответ. благодаря! – user1768615

+0

@ пользователь1768615, приветствуется. –

+0

«мозговой штурм» всегда хороший вариант. – user1768615