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

  • 相关阅读:
    存储用户当前的地理坐标,不要用string ,直接用float即可。string无法保持数据,原因暂不明
    让百度地图只再应用程序启动时,仅取一次用户坐标信息
    ygm900常用网站
    重置一个画面大小的方法
    代码的世界中,一个逻辑套着另外一个逻辑,如何让每一种逻辑在代码中都有迹可循?
    Multiview Applications(多个xib之前的切换) view controller和xib文件是如何关联在一起的 (手动关联 view controller和xib文件)
    一键让应用程序适配 iphone5
    UISCrollView 与 UIPageControl 之间产生联系,就靠这句代码pageControl0.currentPage = page;
    集中“验证”的思想
    静听夜雨
  • 原文地址:https://www.cnblogs.com/muhy/p/11525576.html
Copyright © 2011-2022 走看看