如何用Java读取文件

时间:2018-07-05 12:41:44

标签: java io filereader

因此,我需要帮助修复此代码,或者更多地了解其错误。该代码本身应该读取文件并打印出出现的字符串字符串。但是,即使.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 :(得分:1)

使用.txt文件的完整路径,或将其移至与项目其余部分相同的文件夹。该程序将不会检查桌面(即使文件夹位于桌面中)。

答案 1 :(得分:0)

您可以使用更优雅的方式通过Stream API读取文件:

Files.lines(Paths.get(“ / home / userName / Desktop / text.txt”))                 .forEach(System.out :: println);

取决于操作系统,会有不同的路径,但是文件必须有绝对路径。

答案 2 :(得分:0)

如果不想在OS桌面上创建文件,只需在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社区,因此您可以看到如何在Idea上创建文件:enter image description here

答案 3 :(得分:0)

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);