zoukankan      html  css  js  c++  java
  • 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<Product> getProductFromTxt(){
    List<Product> 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

  • 相关阅读:
    使用基于关系的选择器和伪类选择器创建纯CSS无JavaScript的鼠标移动到上面即可显示的下拉菜单
    git学习教程
    笔记
    luogu P1429 平面最近点对(加强版)
    可持久化数据结构
    luogu P4137 Rmq Problem / mex
    置换群(Burnside引理+Polya定理)
    luogu P1053 篝火晚会
    luogu P3238 [HNOI2014]道路堵塞
    luogu P3812 【模板】线性基
  • 原文地址:https://www.cnblogs.com/muhy/p/11525576.html
Copyright © 2011-2022 走看看