• File读写文件


    1.file方法:

      1.创建文件夹:file.mkdir()
      2.创建文件:file.createNewFile()
      3.删除文件:file.delete()
      4.判断文件是否存在:file.exists()
      5.判断是否是文件:file.isFile()

    2.用流读取文件一

    File file = new File("C:\gfs190409.t00z.pgrb2f00");
    
    FileInputStream ins = new FileInputStream(file);
    
    int count = ins.available();
    
    byte[] bytes = new byte[count];
    
    ins.read(bytes);
    
    ins.close();
    
    System.out.println(file.getAbsoluteFile()+"-------"+file.getFreeSpace());

    3.使用流读取文件二

    FileInputStream fis = new FileInputStream("C:\Z_NAFP_C_BCSH_20190409000000_P_high-warms-f00.BIN");
    
    DataInputStream dis = new DataInputStream(fis);
    
    String s="d";
    
    byte[] bytes = new byte[dis.available()];
    
    int i=dis.read(bytes);
    
    String ss=new String(bytes,"UTF-8");
    
    System.out.println("s="+ss+"
    len="+bytes.length+"i"+i);
    
    fis.close();
    
    dis.close();

    4.读取.nc文件(.nc.gz文件也可以)

    读取.nc.gz文件的时候会自动解压再读取
    
    jar包:netcdfAll-4.6.11.jar
    
    方法:
    System.out.println("开始");
    
    NetcdfFile openNC = NetcdfFile.open("C:\hycom_glb_sfc_u_2019040900_t000.nc");
    
    List<Dimension> dimensions = openNC.getDimensions();//读取纬度信息(得到规模大小)
    
    List<Variable> variables = openNC.getVariables();//读取各个变量
    
    System.out.println("开始循环输出");
    
    for (Variable v:variables) {
    
      System.out.println(v);
    
    }
    
    System.out.println("结束");

    5.使用file删除指定文件夹中的内容

    File file=new File("E:/test/test2/");
    
    File sz[] =file.listFiles();//得到所有的文件和目录
    
    for(File f:sz){
    
      f里存的是文件的路径和名+后缀
    
      f.delete();//删除对应的文件
    
    }

    6.file删除指定文件夹

    File file1 = new File("E:\我创建1的");
    
    if(file1.exists()){
    
      System.out.println("存在删除");
    
      file1.delete();
    
    }
    
    File file = new File("E:\我创建1的");
    
    file.mkdir();//创建文件夹

     7.file实现上传文件

    public static String uploadingFile(MultipartFile multipartFile, String url){
                String newFileName = null;
                try {
                     //获得文件名加后缀
                String fileName =  multipartFile.getOriginalFilename();
                        //得到后缀
                String suffix = fileName.substring(fileName.lastIndexOf("."));
                        //创建新的名字
                newFileName = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date())+suffix;
                        //调用转移方法保存到磁盘上
                multipartFile.transferTo(new File(url + newFileName));
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                }
                return newFileName;
    }

    8.file实现下载文件

    public void downloadFileByUrl(String filePath, HttpServletResponse response) {
    
                //得到下载的文件名
             String doFileName = filePath.substring(filePath.lastIndexOf("/") + 1);
    
                File file = new File(filePath);
    
                byte[] buffer = new byte[1024];
    
                BufferedInputStream bis = null;
    
                OutputStream os = null; //输出流
    
             try {
                    //判断文件父目录是否存在
                 if (file.exists()) {
                            //设置返回文件信息
                      response.setContentType("application/vnd.ms-excel;charset=UTF-8");
                            response.setCharacterEncoding("UTF-8");
                            response.setHeader("Content-Disposition", "attachment;fileName=" + java.net.URLEncoder.encode(doFileName,"UTF-8"));
                            os = response.getOutputStream();
                           bis = new BufferedInputStream(new FileInputStream(file));
                            while(bis.read(buffer) != -1){
                                os.write(buffer);
                            }
                    }
                 } catch (Exception e) {
                    e.printStackTrace();
                 } finally {
                         try {
                            if(bis != null) {
                                bis.close();
                             }
                            if(os != null) {
                                os.flush();
                                os.close();
                            }
                       } catch (IOException e) {
                            e.printStackTrace();
                       }
                }
    }

    9.根据文件size获取文件大小

    public static String getPrintSizeByFileSize(long size) {
           // 如果字节数少于1024,则直接以B为单位,否则先除于1024
           double value = (double) size;
           if (value < 1024) {
                return String.valueOf(value) + "B";
           } else {
                value = new BigDecimal(value / 1024).setScale(2,BigDecimal.ROUND_DOWN).doubleValue();
           }
           // 如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位
           // 因为还没有到达要使用另一个单位的时候
           // 接下去以此类推
           if (value < 1024) {
                return String.valueOf(value) + "KB";
           } else {
                value = new BigDecimal(value / 1024).setScale(2,BigDecimal.ROUND_DOWN).doubleValue();
           }
           if (value < 1024) {
                return String.valueOf(value) + "MB";
           } else {
               // 否则如果要以GB为单位的,先除于1024再作同样的处理
               value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
               return String.valueOf(value) + "GB";
           }
    }

  • 相关阅读:
    合肥禹州珑玥湾业主qq群:791026131
    Operation category READ is not supported in state standby 故障解决
    yarn资源调度之FairScheduler
    storm启动和拓扑启动和关闭的一般命令
    es的一些实用案例
    leetCode例题引出的多线程CountDownLatch和CyclicBarrier使用例题
    spark运维管理
    spark streaming基础
    spark sql工作原理、性能优化和spark on hive----转载
    spark-sql基础
  • 原文地址:https://www.cnblogs.com/HQ0422/p/10719222.html
Copyright © 2020-2023  润新知