• 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

  • 相关阅读:
    互动教程,让你5分钟掌握 Flexbox 布局模式
    Fixed Responsive Nav – 响应式的单页网站导航插件
    创意无限!一组网页边栏过渡动画【附源码下载】
    12款界面精美的 HTML5 & CSS3 网站模板
    Twproject Gantt – 开源的 JavaScript 甘特图组件
    真是好东西!一组动感的页面加载动画效果
    Method Draw – 很好用的 SVG 在线编辑器
    CSS Vocabulary – CSS 词汇表,你都掌握了吗?
    前端精选文摘:BFC 神奇背后的原理
    Vis.js – 基于浏览器的动态 JavaScript 可视化库
  • 原文地址:https://www.cnblogs.com/muhy/p/11525576.html
Copyright © 2020-2023  润新知