Как читать файлы на Java - PullRequest
0 голосов
/ 05 июля 2018

Так что мне нужна помощь в исправлении этого кода или, скорее, в понимании его ошибок. Сам код должен прочитать файл и распечатать вхождение строки слов. Однако, кажется, что он всегда печатает «Не удается найти файл», даже если файл .txt находится на моем рабочем столе.

import java.util.*;
import java.io.*;

/**
 * Searcher
 */
public class Searcher extends File {

    Scanner scn;

    public Searcher(String filename) {
        super(filename);
    }

    public void search(String input) {

        try {
            scn = new Scanner(this);
            String data = "";

            while (scn.hasNext()) {
                data = scn.nextLine();
            }

            int count = 0, fromIndex = 0;
            while ((fromIndex = data.indexOf(input, fromIndex)) != -1) {
                count++;
                fromIndex++;
            }
            System.out.println("Total occurrences: " + count);

            scn.close();
        } catch (Exception e) {
            System.out.println("Cant find file ");
        }
    }

    public static void main(String[] args) {
        Searcher search = new Searcher("ihaveadream.txt");
        search.search("slavery");
    }
}

Ответы [ 4 ]

0 голосов
/ 05 июля 2018
use this code 

File file = new File("C:\\Users\\abc\\Desktop\\test.txt");// this is a path of your file

  BufferedReader br = new BufferedReader(new FileReader(file));

  String str;
  while ((str = br.readLine()) != null)
    System.out.println(str);
0 голосов
/ 05 июля 2018

Вы можете использовать более элегантный способ чтения файла с помощью Stream API:

Files.lines (Paths.get ( "/ главная / имя_пользователя / Desktop / text.txt")) .forEach (System.out :: Println);

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

0 голосов
/ 05 июля 2018

Если вы не хотите создавать файл на рабочем столе вашей ОС, вы можете просто создать файл в IDE для пакета, в котором находится текущий класс, а затем указать каталог файлов в методе main: в моем случае: src/practice/ihaveadream.txt

public static void main(String[] args) {
        Searcher search = new Searcher("src/practice/ihaveadream.txt");
        search.search("slavery");
    }

Я использую IntelliJ Idea Community , поэтому вы можете увидеть, как создать файл в Idea: enter image description here

0 голосов
/ 05 июля 2018

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

...