java io流读取txt文件_Java使用IO流读取TXT文件

通过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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c 调用java程序_C ++可以调用Java代码吗?

小编典典是的&#xff0c;您当然可以。这是一个例子&#xff1a;这是java文件&#xff1a;public class InvocationHelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");System.out.println("Arguments sent to this pro…

java 大数类_Java大数类介绍

java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal&#xff0c;这两个类位于java.math包内&#xff0c;要使用它们必须在类前面引用该包&#xff1a;importjava.math.BigInteger;和importjava.math.BigDecimal;或者importjava.math.*;以下从几个方面对B…

java 画树_java – 如何绘制代表连接节点图的树?

我想在Java GUI中显示树,但我不知道如何.树代表连接节点的图形,如下所示&#xff1a;我应该说我有自己的树类&#xff1a;public class BinaryTree{private BinaryNode root;public BinaryTree( ){root null;}public BinaryTree( Object rootItem ){root new BinaryNode( roo…

mysql 优化代码_MySQL Order by 语句优化代码详解

Order by语句是用来排序的&#xff0c;经常我们会使用到Order by来进行排序&#xff0c;下面我给大家来讲讲Order by用法与优化排序&#xff0c;有需要的同学可参考MySQL Order By keyword是用来给记录中的数据进行分类的。MySQL Order By Keyword根据关键词分类ORDER BY keywo…

java.lang.class_关于Java.lang.Class的一些疑问

User.class可以在编译时就确定下来Class的泛型&#xff0c;而new User().getClass()实际上是运行时才能确定下来实际是什么泛型。举个例子&#xff1a;public class User{}public class Student extends User{public static void main(String[] args) {User user1 new User();…

java文件 linux_Linux执行Java文件

最近学习shell脚本&#xff0c;写个简单java类让linux去执行java类没别的东西&#xff0c;就引了一个fastjson的jar&#xff0c;写了个main方法 序列化一个User对象 打印package com.lws.demo;import java.util.Date;import com.alibaba.fastjson.JSONObject;import com.lws.mo…

java 刽子手游戏_java基础(九):容器

集合的引入List (ArrayList LinkedList)Set (HashSet LinkedHashSet TreeSet )Map (HashMap LinkedHashMap TreeMap)CollectionsIterator使用泛型1.为什么使用集合而不是数组&#xff1f;集合和数组相似点都可以存储多个对象&#xff0c;对外作为一个整体存在数组的缺点长度必须…

java面试手写单链表_(转)面试大总结之一:Java搞定面试中的链表题目

packageLinkedListSummary;importjava.util.HashMap;importjava.util.Stack;/*** http://blog.csdn.net/luckyxiaoqiang/article/details/7393134 轻松搞定面试中的链表题目* http://www.cnblogs.com/jax/archive/2009/12/11/1621504.html 算法大全(1)单链表** 目录&#xff1a…

ccf认证俄罗斯方块java_CCF认证历年试题 - osc_h3robkrt的个人空间 - OSCHINA - 中文开源技术交流社区...

CCF认证历年试题不加索引整理会死星人orz第一题&#xff1a;CCF201712-1 最小差值(100分)CCF201703-1 分蛋糕(100分)CCF201612-1 中间数(100分)CCF201609-1 最大波动(100分)CCF201604-1 折点计数(100分)CCF201509-1 数列分段(100分)CCF201503-1 图像旋转(100分)CCF201412-1 门禁…

mysql 变量作表名查询_使用MySQL函数变量作为表名查询

我需要有一个表中增加一定的ID(如AUTO_INCREMENT)函数使用MySQL函数变量作为表名查询我有水木清华这样DELIMITER $$DROP FUNCTION IF EXISTS GetNextID$$CREATE FUNCTION GetNextID(tblName TEXT, increment INT)RETURNS INTDETERMINISTICBEGINDECLARE NextID INT;SELECT MAX(c…

java 签名 ecdsa_Java实现ECDSA签名算法

ECDSA签名算法package com.albedo.security;/*** DSA 加解密实现*/public class ECDSAUtils extends Base {//字符编码public static final String ALGORITHM "EC";public static final String SIGN_ALGORITHM "SHA1withECDSA";/*** ECDSA 验签** param …

java异常处理方式推荐做法_谈谈Java异常处理这件事儿

此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区&#xff0c;了解更多网易技术产品运营经验。前言我们对于“异常处理”这个词并不陌生&#xff0c;众多框架和库在异常处理方面都提供了便利&#xff0c;但是对于何种处理才是最佳实践&#xff0c;也是众说纷纭。异常处…

as400和java的区别_文件传输协议和AS400

我目前收到以下错误&#xff1a;远程服务器返回错误&#xff1a;(501)参数或参数中的语法错误 .我已经检查了服务器并且文件确实存在&#xff0c;如果我打开命令提示符并键入以下代码它可以工作&#xff1a;ftpopen 192.168.1.2cd /Imagesget S12345.jpeg这是正常的&#xff0c…

java中同时两人提交数据_如何一起发送JSON请求和发布表单数据请求?

所以这是一个应该在POST请求中接受以下参数的API&#xff1a;token (as form data)apiKey (as form data){"notification": {"id": 1,"heading": "some heading","subheading": "some subheading","image&qu…

java 64内存不足_请教一个 Java 内存占用的问题

第 1 条附言 364 天前2020-03-04 01:08:55.525 [HikariPool-1 housekeeper] WARN c.z.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta1m5s643ms48?s450ns).2020-03-04 01:09:08.516 [task-11] ERROR o.s.s.s.TaskU…

java 抽象类 final_final/抽象类/interface

lesson Thirteen                          2018-05-10 02:10:43final:最终的&#xff0c;可以修饰类、属性、方法1.final修饰类&#xff1a;这个类就不能被继承&#xff0c;如&#xff1a;String类&#xff0c;StringBuffer类&#xff0c;System类1…

java char i=2+#039;2#039;;_P039 二维数组的字符按列存放到字符串中 ★★

所属年份&#xff1a;2010.9;2011.9;2012.3请编写函数fun,该函数的功能是&#xff1a;将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为W W W WS S S SH H H H则字符串中的内容应是&#xff1a;WSHWSHWSHWSH。#include#define M 3#d…

java io中断_JDK源码阅读:InterruptibleChannel 与可中断 IO

来源&#xff1a;木杉的博客 &#xff0c;imushan.com/2018/08/01/java/language/JDK源码阅读-InterruptibleChannel与可中断IO/Java传统IO是不支持中断的&#xff0c;所以如果代码在read/write等操作阻塞的话&#xff0c;是无法被中断的。这就无法和Thead的interrupt模型配合使…

java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式

只是本人的Struts2学习笔记&#xff0c;关于Value Stack(值栈)和OGNL表达式&#xff0c;把我知道的都说出来&#xff0c;希望对大家有用。一&#xff0c;值栈的作用记录处理当前请求的action的数据。二&#xff0c;小例子有两个action&#xff1a;Action1和Action2Action1有两个…

php项目实战流程_一个完整的php流程管理实例代码分享

1. 添加新流程页面&#xff1a;请选择流程节点&#xff1a;session_start();include("../DBDA.class.php");$db new DBDA();$suser "select * from users";$auser $db->Query($suser);foreach($auser as $v){echo " {$v[2]} ";}?>$att…