java实现读取txt文件中的内容

时间:2022-11-20 22:00:07

我们先来看个例子

 
  1. import java.io.*;
  2.  
  3. /**
  4. * Created by liguoqing on 2016/3/28.
  5. */
  6. public class ReadTxtFile {
  7.  
  8.  
  9. public static void readTxt(String filePath) {
  10.  
  11.   try {
  12.     File file = new File(filePath);
  13.     if(file.isFile() && file.exists()) {
  14.       InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
  15.       BufferedReader br = new BufferedReader(isr);
  16.       String lineTxt = null;
  17.       while ((lineTxt = br.readLine()) != null) {
  18.         System.out.println(lineTxt);
  19.       }
  20.       br.close();
  21.     } else {
  22.       System.out.println("文件不存在!");
  23.     }
  24.   } catch (Exception e) {
  25.     System.out.println("文件读取错误!");
  26.   }
  27.  
  28.   }
  29.  
  30.  
  31.   public static void main(String[] args) {
  32.     String filePath = "D:\\test\\我.txt";
  33.     readTxt(filePath);
  34.   }
  35.  
  36. }

看完上面的例子,我们再来详细研究下

java读取txt文件内容。可以作如下理解:

首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。

通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西

既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据

解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。

 
  1. package com.campu; 
  2.  
  3. import java.io.BufferedInputStream; 
  4. import java.io.BufferedReader; 
  5. import java.io.File; 
  6. import java.io.FileInputStream; 
  7. import java.io.InputStreamReader; 
  8. import java.io.Reader; 
  9.  
  10. /** 
  11.  * @author 码农小江 
  12.  * H20121012.java 
  13.  * 2012-10-12下午11:40:21 
  14.  */ 
  15. public class H20121012 { 
  16.   /** 
  17.    * 功能:Java读取txt文件的内容 
  18.    * 步骤:1:先获得文件句柄 
  19.    * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 
  20.    * 3:读取到输入流后,需要读取生成字节流 
  21.    * 4:一行一行的输出。readline()。 
  22.    * 备注:需要考虑的是异常情况 
  23.    * @param filePath 
  24.    */ 
  25.   public static void readTxtFile(String filePath){ 
  26.     try { 
  27.         String encoding="GBK"; 
  28.         File file=new File(filePath); 
  29.         if(file.isFile() && file.exists()){ //判断文件是否存在 
  30.           InputStreamReader read = new InputStreamReader( 
  31.           new FileInputStream(file),encoding);//考虑到编码格式 
  32.           BufferedReader bufferedReader = new BufferedReader(read); 
  33.           String lineTxt = null; 
  34.           while((lineTxt = bufferedReader.readLine()) != null){ 
  35.             System.out.println(lineTxt); 
  36.           } 
  37.           read.close(); 
  38.     }else{ 
  39.       System.out.println("找不到指定的文件"); 
  40.     } 
  41.     } catch (Exception e) { 
  42.       System.out.println("读取文件内容出错"); 
  43.       e.printStackTrace(); 
  44.     } 
  45.    
  46.   } 
  47.    
  48.   public static void main(String argv[]){ 
  49.     String filePath = "L:\\Apache\\htdocs\\res\\20121012.txt"; 
  50. //   "res/"; 
  51.     readTxtFile(filePath); 
  52.   } 
  53.  

  1. } 
--------------------------------------------------------------------
运用spring MVC
/**  * 读取TXT文本内容  * @param file  */ public static List<String> readTxtUtil(MultipartFile file) {
   List<String> list=Lists.newArrayList();
   try {
         //InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");

         //处理文件的字符集,得到文件的字符集
          CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
          detector.add(new ParsingDetector(false));
          detector.add(JChardetFacade.getInstance());
          detector.add(ASCIIDetector.getInstance());
          detector.add(UnicodeDetector.getInstance());
          Charset charset = null;
         try {
         //charset = detector.detectCodepage(file.toURI().toURL());
         InputStream is = new BufferedInputStream(file.getInputStream());
         charset = detector.detectCodepage(is, 8);
          } catch (Exception e) {
         e.printStackTrace();
         throw e;
          }

          InputStreamReader isr = new InputStreamReader(file.getInputStream(), charset.name());
          // InputStreamReader isr = new InputStreamReader(file.getInputStream(), "utf-8");
         BufferedReader br = new BufferedReader(isr);
         String lineTxt = null;

         while ((lineTxt = br.readLine()) != null) {
            //System.out.println(lineTxt);
            list.add(lineTxt);
         }
         br.close();
   } catch (Exception e) {
      System.out.println("文件读取错误!");
   }
          return list;
}