方法一:

一、桌面上准备 DataObject.txt 文件,内容为:

二、打开 Eclipse,编写代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import javax.swing.filechooser.FileSystemView; public class test003 {
  public static void main(String[] args) {
    FileSystemView fsv = FileSystemView.getFileSystemView();
    File com = fsv.getHomeDirectory();
    String deskPath = com.getPath();
    String filePath = deskPath + "\\" + "DataObject.txt";     List<String> list = new ArrayList<String>();
    try {
      list = getFileContext( filePath );
      for( int i = 0; i < list.size(); i++ ) {
        String lineStr = list.get(i);
        System.out.println( "lineStr = " + lineStr );
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }   /**
   * 获取txt文件内容, 并按行放入list中
   */
  public static List<String> getFileContext( String path ) {
    FileReader fileReader = null;
    BufferedReader bufferedReader = null;
    List<String> list = new ArrayList<String>();
    String str = "";
    try {
      fileReader = new FileReader( path );
      bufferedReader = new BufferedReader( fileReader );
      while( (str = bufferedReader.readLine()) != null ) {
        if( str.trim().length() > 2 ) {
          list.add( str );
        }
      }
    } catch ( Exception e ) {
      e.printStackTrace();
    } finally {
      try {
        if (bufferedReader != null) {
          bufferedReader.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }       try {
        if (fileReader != null) {
          fileReader.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    }
    return list;
  }
}

三、执行结果为:


方法二:

一、桌面上准备 DataObject.txt 文件,内容为:

二、打开 Eclipse,编写代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import javax.swing.filechooser.FileSystemView; public class test003 {
  public static void main(String[] args) {
    FileSystemView fsv = FileSystemView.getFileSystemView();
    File com = fsv.getHomeDirectory();
    String deskPath = com.getPath();
    String filePath = deskPath + "\\" + "DataObject.txt";     List<String> list = new ArrayList<String>();
    try {
      list = readFileToList( filePath );
      for( int i = 0; i < list.size(); i++ ) {
        String lineStr = list.get(i);
        System.out.println( "lineStr = " + lineStr );
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }   /**
   * 读取文件内容到容器List
   * @param fileName 文件名称
   */
  public static List<String> readFileToList( String fileName ) {
    List<String> list = new ArrayList<String>();
    BufferedReader br = null;
    try {
      String line = null;
      br = new BufferedReader( new UnicodeReader( new FileInputStream(fileName), Charset.defaultCharset().name()) );
      while ( (line = br.readLine()) != null ) {
        list.add(line);
      }
    } catch ( IOException e ) {
      e.printStackTrace();
    } finally {
      try {
        if (null != br) {
          br.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    }     return list;
  }
}

UnicodeReader 类:

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PushbackInputStream;
import java.io.Reader; public class UnicodeReader extends Reader {
PushbackInputStream internalIn;
InputStreamReader internalIn2 = null;
String defaultEnc; private static final int BOM_SIZE = 4; public UnicodeReader(InputStream in, String defaultEnc) {
internalIn = new PushbackInputStream(in, BOM_SIZE);
this.defaultEnc = defaultEnc;
} public String getDefaultEncoding() {
return defaultEnc;
} public String getEncoding() {
if (internalIn2 == null) return null;
return internalIn2.getEncoding();
} protected void init() throws IOException {
if (internalIn2 != null) return; String encoding;
byte bom[] = new byte[BOM_SIZE];
int n, unread;
n = internalIn.read(bom, 0, bom.length); if ( (bom[0] == (byte)0x00) && (bom[1] == (byte)0x00) &&
(bom[2] == (byte)0xFE) && (bom[3] == (byte)0xFF) ) {
encoding = "UTF-32BE";
unread = n - 4;
} else if ( (bom[0] == (byte)0xFF) && (bom[1] == (byte)0xFE) &&
(bom[2] == (byte)0x00) && (bom[3] == (byte)0x00) ) {
encoding = "UTF-32LE";
unread = n - 4;
} else if ( (bom[0] == (byte)0xEF) && (bom[1] == (byte)0xBB) &&
(bom[2] == (byte)0xBF) ) {
encoding = "UTF-8";
unread = n - 3;
} else if ( (bom[0] == (byte)0xFE) && (bom[1] == (byte)0xFF) ) {
encoding = "UTF-16BE";
unread = n - 2;
} else if ( (bom[0] == (byte)0xFF) && (bom[1] == (byte)0xFE) ) {
encoding = "UTF-16LE";
unread = n - 2;
} else {
encoding = defaultEnc;
unread = n;
} if (unread > 0) internalIn.unread(bom, (n - unread), unread); if (encoding == null) {
internalIn2 = new InputStreamReader(internalIn);
} else {
internalIn2 = new InputStreamReader(internalIn, encoding);
}
} public void close() throws IOException {
init();
internalIn2.close();
} public int read(char[] cbuf, int off, int len) throws IOException {
init();
return internalIn2.read(cbuf, off, len);
}
}

三、执行结果为:

Java 读取 txt 文件内容到容器 List的更多相关文章

  1. java读取txt文件内容

    package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...

  2. JAVA 读取txt文件内容

    原文地址https://www.cnblogs.com/xing901022/p/3933417.html 通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文 ...

  3. java 读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  4. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  5. Java读取txt文件信息并操作。

    一.java读取txt文件内容 import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.Fi ...

  6. JAVA获取txt文件内容

    JAVA 读取txt文件内容 通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可. public class txttest { /** * 读 ...

  7. java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

    #java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...

  8. Java读取txt文件

    package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...

  9. Java读取txt文件、excel文件的方法

    Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...

随机推荐

  1. textarea文本域宽度和高度width及height自动适应实现代码

    <HTML> <HEAD> <TITLE>textarea宽度.高度自动适应处理方法</TITLE> <!-- 控制宽度的自动适应 --> ...

  2. ANGULAR6.x - 错误随笔 - Can't bind to 'formGroup'

    formGroup:错误 Can't bind to 'formGroup' since it isn't a known property of 'form'. (" 原因: 在使用for ...

  3. Windows下80端口被进程System占用的解决方法

    最近电脑时不时就发生了80端口被占用的情况,简单百度解决后,当重启电脑的时候又发生被占用的情况.今天非常幸运的是,发生了80端口和8080端口都被占用了情况,忍无可忍决定下定决心解决这个坑爹的问题,经 ...

  4. Vue2.0学习——axios用法详解

    功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 http请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 自动转换 JSON 数据 客 ...

  5. P1433 吃奶酪 回溯法 优化

    题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处. 输入输出格式 输入格式: 第一行一个数n (n<=15) 接下来每行2个实数,表示第i块 ...

  6. Trident中的DRPC实现

    一:介绍 1.说明 Storm里面引入DRPC主要是利用storm的实时计算能力来并行化CPU intensive的计算.DRPC的storm topology以函数的参数流作为输入,而把这些函数调用 ...

  7. day 50 js-part1基础语法,数据类型及用法,流程控制语句,循环

    js基本概念: JavaScript 是世界上最流行的脚本语言. JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript ...

  8. vue的中vuex为何需要mutation更新状态,vue-router的路由的理解

    ); ); ); history.back(); history.forward(); // 修改历史,包括二个方法pushState.replaceState二个方法(objState,title, ...

  9. 20165220 2017-2018-2《Java程序设计》课程总结

    每周作业链接汇总: 20165220 我期望的师生关系 20165220 学习基础和C语言基础调查 20165220 Linux安装及学习 20165220 第一周学习总结 20165220 第二周学 ...

  10. DFS Tempter of the Bone

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 用到了奇偶剪枝: 0 1 0 1 1 0 1 0          如图,设起点为s,终点为e,s-> ...