JAVA 读取json、csv、txt、xls文件

读取json、csv、txt文件代码

/**
* 读取文件,json、csv、txt都通用
* fileName:文件路径
*/
public static String read( String fileName ) {
        StringBuffer sb = new StringBuffer();
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "utf-8"));//GBK
            String line = null;
            while((line=reader.readLine())!=null){
                sb.append(line+"\n");
            }
            reader.close();
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

测试

public void test() {
//        String fileName = "covidData/covid_4_5.txt";//txt文件
        String fileName = "covidData/worldhistory_4_5.csv";//csv文件
//        String fileName = "covidData/data.json";//json文件
        String path = Read.class.getClassLoader().getResource(fileName).getPath();//获取路径,这里我是放在配置文件夹下
        path = path.replaceAll("%20", " ");//无法识别空格的转义字符,如果路径有空格的话
        String fileData = Read.read(path);//读取文件
        System.out.println(fileData);//输出文件
    }

对json格式的操作:java的json操作


读取xls文件

导入对应的jar包
  <dependency>
      <groupId>net.sourceforge.jexcelapi</groupId>
      <artifactId>jxl</artifactId>
      <version>2.6.12</version>
  </dependency>
操作方法:
  • String path = “文件路径”;//文件路径
  • InputStream is = new FileInputStream(path);
  • Workbook wb = Workbook.getWorkbook(is);//读取文件
  • 获取页签的数量: int sheet_size = wb.getNumberOfSheets();
  • 每个页签创建一个Sheet对象:Sheet sheet = wb.getSheet(index);
  • 获取总行数: int rows = sheet.getRows();
  • 获取总列数:int columns = sheet.getColumns();
  • 获取表格中的数据 String cellinfo = sheet.getCell(col, row).getContents();
  • 获取页签名:String sheetName= sheet.getName();

例子:我这里是读取文件存入到数据库中
@org.junit.Test
    public void testXls() throws Exception {
        int cnt = 1;
        for ( int k = 1; k <= 4; k++ ) {
            String fileName = "covidData/temp"+k+".xls";//文件在类路径的位置
            String path = Read.class.getClassLoader().getResource(fileName).getPath();//获取路径,这里我是放在配置文件夹下
            path = path.replaceAll("%20", " ");//无法识别空格的转义字符,如果路径有空格的话

            InputStream is = new FileInputStream(path);
            Workbook wb = Workbook.getWorkbook(is);
            // Excel的页签数量
            int sheet_size = wb.getNumberOfSheets();
            for ( int index = 0; index < sheet_size; index++ ) {
                // 每个页签创建一个Sheet对象
                Sheet sheet = wb.getSheet(index);

                String className = sheet.getName();

                // sheet.getRows()返回该页的总行数
                out:
                for (int i = 3; i < sheet.getRows(); i++) {
                    Student student = new Student();
                    String provinceId = RandomCode.randomProvinceId(addressMapDao);
                    student.setProvinceId(provinceId);
                    student.setCityId(RandomCode.randomCityId(addressMapDao, provinceId.substring(0, 2)+"%"));
                    student.setClassId(classDao.findIdByName(className));
                    // sheet.getColumns()返回该页的总列数
                    for (int j = 1; j <= 2; j++) {
                        String cellinfo = sheet.getCell(j, i).getContents();
                        if ( cellinfo.equals("") ) {
                            continue out;
                        }

                        if ( j == 1 ) student.setStudentId(cellinfo);
                        if ( j == 2 ) student.setStudentName(cellinfo);

                    }
                    System.out.println(student);
//                    studentDao.saveStudent(student);
                }
            }

            System.out.println("\n\n\n");
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值