Exception in

package Save;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class SaveWeather {
    public static void main(String[] args) throws IOException {
        ArrayList<String[]> readData=SaveWeather.readData();
        for(String[] arr:readData){
            for (String line:arr){
                System.out.println(line+" ");
            }
            System.out.println();
        }
    }
    public  static void createTable() throws IOException {
        //
        Configuration conf = HBaseConfiguration.create();
        //配置参数
        conf.set("hbase.zookeeper.quorum","192.168.204.200,192.168.204.201,192.168.204.202");
        conf.set("hbase.rootdir","hdfs://192.168.204.200:9000/hbase");
        System.out.println("连接中.....");
        Connection connection = ConnectionFactory.createConnection(conf);
        System.out.println("获取到conn....."+connection);
        Admin admin = connection.getAdmin();

        //定义表名,创建表结构对象,创建列族
        TableName tableName = TableName.valueOf(Bytes.toBytes("weather"));
        TableDescriptorBuilder tabledesc = TableDescriptorBuilder.newBuilder(tableName);
        tabledesc.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("weatherInfo")).build());
        System.out.println("正在建表.....");
        //3.建表
        admin.createTable(tabledesc.build());
        System.out.println("建表成功");
    }
    public static void getData(){

    }
    //插入数据
    public  static void putData(){

    }
    //读取数据
    public static ArrayList<String []> readData() throws IOException {
        File inputFiles = new File("D:\\DocumentsTencent Files2791852837FileRecv\\changsha202004.txt");
        File[] filelist = inputFiles.listFiles();
        ArrayList<String[]> list = new ArrayList<String[]>();
        for( File file: filelist) {
            Scanner in = new Scanner(file);

            while(in.hasNext()) {
                String read = in.nextLine();
                if(read!=null&&!read.equals(null)) {
                    String[] line = read.split("\t");
                    list.add(line);
                }
            }
            in.close();
        }
        return list;
    }
}

56行空指针啊,filelist为null,没有从文件中读取到内容!

File inputFiles = new File("D:\\DocumentsTencent Files2791852837FileRecv\\changsha202004.txt");
        //这个代码有问题,你的意思是从文件内容里面读取读文件吗?
        File[] filelist = inputFiles.listFiles();

 

File inputFiles = new File("D:\\DocumentsTencent Files2791852837FileRecv\\changsha202004.txt"); 这句代码是实例化一个文件对象

File[] filelist = inputFiles.listFiles(); 这个方法是读取文件夹中的文件

这两句代码矛盾啊。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632