如何区分文本文件?

时间:2011-11-25 07:14:30

标签: java file-upload

  

可能重复:
  How do I detect the encoding of some text?

如何区分unicode文本文件和文本文件的其他文件?

我正在使用java进行批量上传文件。 首先我在excel文件中写入输入,然后我保存为Unicode文本(.txt)文件。 然后我将上传Unicode文本文件,并从我的java类中读取。

我有一个问题。 我可以区分.txt文件和文本文件以外的文件。但是我怎样才能找到一个文件,无论是Unicode文本文件还是其他文本文件。

1 个答案:

答案 0 :(得分:0)

试试这个

import org.mozilla.universalchardet.UniversalDetector;

public class TestDetector {
  public static void main(String[] args) throws java.io.IOException {
    byte[] buf = new byte[4096];
    String fileName = args[0];
    java.io.FileInputStream fis = new java.io.FileInputStream(fileName);

    // (1)
    UniversalDetector detector = new UniversalDetector(null);

    // (2)
    int nread;
    while ((nread = fis.read(buf)) > 0 && !detector.isDone()) {
      detector.handleData(buf, 0, nread);
    }
    // (3)
    detector.dataEnd();

    // (4)
    String encoding = detector.getDetectedCharset();
    if (encoding != null) {
      System.out.println("Detected encoding = " + encoding);
    } else {
      System.out.println("No encoding detected.");
    }

    // (5)
    detector.reset();
  }
}