文件处理概念与拆分文件

时间:2017-11-22 08:44:08

标签: java

一个文件夹包含多个文本文件,例如a.txtb.txtc.txt,就像我需要搜索输出应该来的所有文件中的特定字符串所需的30多个文件一样如下:

  

a.txt包含您输入的字符串   20

     

b.txt包含您输入的字符串   30

等等......

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("enter String");
        String input = sc.nextLine();
        double count = 0, countBuffer = 0, countLine = 0;
        String lineNumber = ".txt";
        File folder = new File("C://Users//Desktop//Santhosh.txt");
        BufferedReader br;
        String line = " ";
        try {
            br = new BufferedReader(new FileReader(folder));
            try {
                while ((line = br.readLine()) != null) {
                    countLine++;
                    //System.out.println(line);
                    String[] words = line.split(" ");

                    for (String word : words) {
                        if (word.equals(input)) {
                            count++;
                            countBuffer++;
                        }
                    }

1 个答案:

答案 0 :(得分:0)

@santhosh我想你想在文件中搜索一个文本并根据文件来计算单词的出现这里是执行此操作的程序:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class TextSearch {

  File file;
  FileReader reader;
  BufferedReader buffReader;
  String word;
  Scanner scanner;
  Map<String, Integer> counter = new TreeMap<String, Integer>();

  public TextSearch() {
    file = new File("D:\\Backup\\NP\\GN");// This Contain the 30 files
    scanner = new Scanner(System.in);

    System.out.println("Enter a word");
    word = scanner.nextLine();

    File[] listOfFiles = file.listFiles();
    startSearch(listOfFiles);

    Iterator<String> iterator = counter.keySet().iterator();
    while (iterator.hasNext()) {
      String key = iterator.next();
      System.out.println(key + " contain this word " + word + " " + counter.get(key) + "times");
    }
  }

  public void startSearch(File[] list) {
    for (int i = 0; i < list.length; i++) {
      if (list[i].isFile()) {
        try {
          reader = new FileReader(list[i]);
          buffReader = new BufferedReader(reader);
          String line = "";
          while ((line = buffReader.readLine()) != null) {
            if (line.contains(word)) {
              if (counter.containsKey(list[i].getName())) {
                Integer count = counter.get(list[i].getName());
                count++;
                counter.put(list[i].getName(), count);
              } else {
                counter.put(list[i].getName(), 1);
              }
            }
          }

        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }

  public static void main(String args[]) {
    new TextSearch();
  }
}