通过BufferedReader读取TXT文件

window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputStream(file),“GBK”)为GBK会出现读取内容乱码。

//文件路径

String filePath="C:/Users/Admin/Desktop/products.txt";

File file=new File(filePath);

BufferedReader reader = null;

String tempString = null;

int line =1;

try {

// System.out.println("以行为单位读取文件内容,一次读一整行:");

reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));

while ((tempString = reader.readLine()) != null) {

System.out.println("Line"+ line + ":" +tempString);

line ++ ;

}

reader.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

if(reader != null){

try {

reader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

读取TXT文件并保持在List集合

TXT文件内容

商品 价格 类型 数量

创建Product对象

public class Product{

private int id;

private String name;

private int price;

private char type;

private int count;

1

2

3

4

5

6

//将txt文件中的产品对象读取出来并且封装成集合对象

private static List getProductFromTxt(){

List list=new ArrayList<>();

String filePath="C:/Users/Admin/Desktop/products.txt";

File file=new File(filePath);

BufferedReader reader = null;

String content = null;

int line =1;

try {

// System.out.println("以行为单位读取文件内容,一次读一整行:");

reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));

while ((content = reader.readLine()) != null) {

//System.out.println("Line"+ line + ":" +tempString);

String[] arra=content.split(",");

Product product=new Product();

product.setId(line);

product.setName(arra[0]);

product.setPrice(Integer.parseInt(arra[1]));

char[] ch=arra[2].toCharArray();

product.setType(ch[0]);

product.setCount(Integer.parseInt(arra[3]));

list.add(product);

line ++ ;

}

reader.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

if(reader != null){

try {

reader.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

return list;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

其中包含了String转char

char[] ch=str.toCharArray();

product.setType(ch[0]);

————————————————

版权声明:本文为CSDN博主「IManiy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/IManiy/article/details/83834360

java io流读取txt文件_Java使用IO流读取TXT文件相关推荐

  1. java 删除指定文件夹和下面所有文件_java——File IO流

    1.File(掌握) (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件 (2)构造方法 A:File file = new File("e:demoa ...

  2. java 读取1m文件_java的FileInputStream类读取文件

    package net.csdn.InputStream; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...

  3. java缓冲流 复制文件_java使用缓冲流复制文件的方法

    本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加 ...

  4. java io操作压缩文件_Java操作zip-压缩和解压文件

    一.说明 rar格式的压缩包收费,java支持zip格式的压缩和解压 二.工具类 import java.io.*; import java.util.Enumeration; import java ...

  5. java合并txt文件_Java程序将两个txt文件合并为第三个txt文件 - Break易站

    让给定的两个文件是file1.txt和file2.txt.我们的任务是将两个文件合并到第三个文件,例如file3.txt,但合并应该逐行进行.以下是交替合并的步骤. 为file3.txt创建Print ...

  6. java当中各种流的应用场景_Java中有哪些流,常用流有哪些并有何特点和使用场景 NIO流,特性及使用时注意的事项 IO与NIO区别...

    IO流 流(stream):一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象,对文件中的内容读和写的操作. 及时关闭不使用的流,避免造成资源流失,可能会导致内存溢出 1.数据流向 输入流 ...

  7. java流类图结构_java I/O 流总结

    一.java 流操作有关的类和接口: 类                                                                          说明 Fil ...

  8. java io和nio的区别_Java中IO和NIO的本质和区别

    导读热词 简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1 ...

  9. file数组 删除文件_java编程IO基础之一:File类

    在整个java.io包中,File类是唯一的一个与文件本身操作有关的类,既可以执行文件的创建.删除.重命名,取得文件大小和修改日期. File的构造函数: public File(String pat ...

最新文章

  1. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
  2. ClassLoader(二)- 加载过程
  3. python软件怎么运行-python软件怎么用
  4. How Kafka’s Storage Internals Work
  5. 华为交换机端口组配置实例
  6. 本地文件夹如何断开svn连接
  7. boost::execution_monitor相关的测试程序
  8. js如何读取客户端Excel文件
  9. FBV(function base views) 顾名思义基于函数的视图类 CBV(class base views)基于类的视图类
  10. 无限式查找-----2013年2月28日
  11. 二维随机变量期望公式_概率论笔记-Ch4期望与方差
  12. 笨方法“学习python笔记之循环
  13. 这是很简单的js拖拽方法
  14. Yunxion资产监测设备中DCDC芯片选择
  15. 有关XLS文件的读取
  16. 固定资产管理系统的作用何在?
  17. FileReader的使用方法
  18. ChemDraw 2D与ChemBio 3D之间的信息转换
  19. 苹果6plus自动时间不准 修复苹果自动设置时间不准教程(图文)
  20. 【雕爷学编程】Arduino动手做(72)---HX711 人体称重模块

热门文章

  1. JavaScript从入门到放弃 -(四)E5 新增方法
  2. python动态_python --动态类型
  3. weex android 性能,跨越适配性能那道坎,企鹅电竞Android weex优化
  4. mysql insert 二进制_MYSQL 插入二进制数的 2 种方法。
  5. linux隔一级目录找文件,linux查看文件和子目录
  6. 出发a标签_以用户标签为例,复盘B端产品的需求挖掘方法论
  7. linux中gedit中定义变量,linux中的gedit
  8. MySQL的乱码解决方案
  9. 世界手机号码格式_世界上手机号码最长的国家是中国,最短的是哪个国家?
  10. 海康9800平台linux的sdk,流媒体项目外包海康9800平台sdk适配