用Resource流读取文件

 些文件路径时尽量用File.separator进行分割,因为linux和windows系统中/和\格式不一样

使用SpringResource读取文件内容source为文件路径Ioutistomcate的包len返回读取到的实际长度。返回字符格式的数据

private byte[] abc(String source) throws IOException{

       Resource resource = new ClassPathResource(source);

       InputStream in = resource.getInputStream();

       int length = in.available();

       byte[] buffer = new byte[length];

       int len=IOUtils.read(in, buffer, 0, length);

       return buffer;

      

    }或者用下面的读取sourcePath直接用name/***引用

ClassLoader classLoader = getClass().getClassLoader();    

InputStream stream = classLoader.getResourceAsStream(sourcePath);

Scanner scanner = new Scanner(stream);    也可以用 String str= IOUtils.toString(stream, "UTF-8");直接读取

while (scanner.hasNextLine()) { String s = scanner.nextLine();        

String[] items = s.split(" +");    //csv文件一般用///t进行分割    

if (items.length != 2) { continue;         }

appsClassif.put(items[0], Arrays.asList(items[1].split(",")));     } }

也可以用

其中/product/.....为resource下面的文件夹

IOUtils为import org.apache.commons.io.IOUtils;
String dmRes = IOUtils.resourceToString("/product/" + productId+ "/skill-dm-" + skillId + ".json", Charset.forName("utf-8"));

byte[]集合对象转换为字符串对象,

Byte[] bytes=new byte[10]{‘a’,’b’,’c’}

String str=new String(bytes,1,3)bytes集合对象的第二和第三个取出来形成字符串对象

 

或者直接用下面的读取,.为当前目录路径,..为上级目录,/为绝对路径即为根目录skills目录为与src同级的目录:

String orifilePath = FileUtils.getFile("./skills/yw.txt").getAbsolutePath();
        File fileOri = new File(orifilePath);
        String strOri = FileUtils.readFileToString(file2);

读取xlsx(excel)时可以将excel复制到txt文件中然后用FileUtils获取里面的内容。

String orifilePath = FileUtils.getFile("./skills/yw.txt").getAbsolutePath();
        File fileOri = new File(orifilePath);

//FileUtils为apache.commons.io包中的类
        String strOri = FileUtils.readFileToString(fileOri);
        String[] split2 = strOri.split("\n");// 换行
        for(String s:split2){
            JSONArray itemArr = new JSONArray();
            s=s.replaceAll("\\r", "");
            String[] split3 = s.split("\t"); //获取到单个列
            itemArr.add(split3[0]);
            itemArr.add(Arrays.stream(split3).collect(Collectors.joining(",")));
            contentArr.add(itemArr);//将每一列放到jsonArray中。
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值