首页 > 编程语言 >java读取网络文件和本地文件

java读取网络文件和本地文件

时间:2023-12-21 12:45:02浏览次数:32  
标签:文件 java 读取 len File new null os

java读取网络文件和本地文件:

package com.mybatisplustest.test;

import java.io.*;
import java.net.URL;

/**
 * Created by Administrator on 2023/12/21.
 */
public class Test {
    public static void main(String[] args) {
        // 读取网络文件
         readNetFile();
        // 读取本地文件
//        readLocalFile();
    }

    /**
     * 读取本地文件
     * @return void
     */
    private static void readLocalFile() {
        // 可以相对路径或绝对路径
        // 绝对路径
        //String sourcePath = "D:/test/t1/t.jpg";
        // 相对路径,如果首位不是/,表示相对于(父级目录)当前项目路径:绝对路径是D:\IdeaProjects\springboot-mybatisplustest\test\t1\t.jpg
        // 则D:\IdeaProjects\springboot-mybatisplustest\是当前项目路径
        // String sourcePath = "test/t1/t.jpg";
        // 如果首位是/,则是相对于(根目录)根目录。绝对路径是D:\test\t1\t.jpg,则根目录是D:。
        String sourcePath = "/test/t1/t.jpg";
        File sourceFile = new File(sourcePath);
        // 打印绝对路径
        System.out.println(sourceFile.getAbsolutePath());
        if(!sourceFile.exists()){
            System.out.println("文件不存在");
            return;
        }
        InputStream is = null;
        OutputStream os = null;
        try {
            is = new FileInputStream(sourceFile);
            String path = "D:/test/t2";
            // 如果目标文件存在上级目录,需要判断目录是否存在。否则会异常。
            // 文件目录。
            File filePath = new File(path);
            File file = new File(path + "/t.jpg");
            // 需要判断文件目录是否存在,否则会异常。
            if(!filePath.exists()){
                /*
                mkdir():父目录要存在,否则创建不成功。创建单个目录。
                mkdirs():父目录不存在也能创建成功。创建多级目录。
                 */
                filePath.mkdirs();
            }
            os = new FileOutputStream(file);
            // 缓冲1024byte=1kb。每次读取1kb并写入。
            byte[] buffer = new byte[1024];
            int len;
            while((len = is.read(buffer)) != -1){
                // byte b[], int off, int len
                // 缓冲数据,开始位置,字节数
                os.write(buffer,0,len);
            }
            System.out.println("完成");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(os != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 读取网络文件
     * @return void
     */
    private static void readNetFile() {
        InputStream is = null;
        OutputStream os = null;
        try {
            // 读取网络图片
            URL urlFile = new URL("/i/l/?n=22&i=blog/1003101/202208/1003101-20220802095124634-1241340631.png");
            is = urlFile.openStream();
            String path = "D:/test/t1";
            // 如果目标文件存在上级目录,需要判断目录是否存在。否则会异常。
            // 文件目录。
            File filePath = new File(path);
            File file = new File(path + "/t.jpg");
            // 需要判断文件目录是否存在,否则会异常。
            if(!filePath.exists()){
                /*
                mkdir():父目录要存在,否则创建不成功。创建单个目录。
                mkdirs():父目录不存在也能创建成功。创建多级目录。
                 */
                filePath.mkdirs();
            }
            os = new FileOutputStream(file);
            // 缓冲1024byte=1kb。每次读取1kb并写入。
            byte[] buffer = new byte[1024];
            int len;
            while((len = is.read(buffer)) != -1){
                // byte b[], int off, int len
                // 缓冲数据,开始位置,字节数
                os.write(buffer,0,len);
            }
            System.out.println("完成");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(os != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

标签:文件,java,读取,len,File,new,null,os
From: https://www.cnblogs.com/super-chao/p/17918727.html

相关文章

  • 【Django】加密 settings.py文件中的数据库密码
    1.使用fromcryptography.fernetimportFernet第三方库pip3installcryptography2.Fernet的使用fromcryptography.fernetimportFernet#生成加密密钥key=Fernet.generate_key()#创建Fernet对象fernet=Fernet(key)#要加密的原始数据message=b"Hell......
  • 实验7_文件应用编程
    task4.c#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intmain(){longi=0;charch;FILE*fp;fp=fopen("c://data//data4.txt","r");while(!feof(fp)){ch=fgetc(fp);if(ch!=''&&ch!='\n......
  • Python接口自动化之文件上传/下载接口详解
    〇、前言文件上传/下载接口与普通接口类似,但是有细微的区别。如果需要发送文件到服务器,例如:上传文档、图片、视频等,就需要发送二进制数据,上传文件一般使用的都是Content-Type:multipart/form-data数据类型,可以发送文件,也可以发送相关的消息体数据。反之,文件下载就是将二进制格式......
  • vue上传图片到指定文件夹
    vue代码<template><divclass="app-container"> <divclass="wenben"><el-upload:disabled="dis==0?true:false"class="upload-demo":action="uploadUrl":on-......
  • JavaTimeModule 所在包
    JavaTimeModule是jackson转换java8时间类的需要的typo包,但是jackson-databind包中不存在这个类,JavaTimeModule所在包为jackson-datatype-jsr310,maven坐标如下:<!--https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310--><dependency......
  • 上机编程“文件树”学习交流
    在某OS的文件系统中(同一目录下的目录和文件不会重名),假设当前目录为根目录,给定若干个已有路径(目录或文件),其格式如下:·         输入均为根目录下的路径,且不会重复给出;·         路径中目录或文件名仅包含字母、数字和分隔符/;·         路径结尾带......
  • java基础之“获取系统类型,区分Windows和Linux系统”
    一、获取系统类型,区分Windows和Linux系统//判断是否是windows系统System.getProperties().getProperty("os.name").contains("Windows") 二、案例@TestpublicvoidtestWindows(){Stringproperty=System.getProperties().getProperty("os.name");......
  • java方法引用
    一、方法引用1、概述 示例:packagecom.itbianma04;publicclassDemo{publicstaticvoidmain(String[]args){usePrinttable(s->System.out.println(s));usePrinttable(System.out::println);}privatestaticvoidusePrinttable(......
  • 全球知名的五款JavaScript混淆加密工具详解
    ​现在市场上有很多好用的混淆加密工具,其中一些比较流行且受欢迎的工具包括:1、UglifyJS(罗马尼亚):UglifyJS是一个非常流行的JavaScript工具库,它可以压缩、混淆、美化和格式化JavaScript代码。使用UglifyJS时,您可以通过调整参数来控制压缩级别并设置混淆选项。注:主要用于压缩j......
  • JavaScript代码加密:保护你的源代码
    一、引言 JavaScript是一种广泛使用的编程语言,常用于前端开发。然而,由于其源代码是公开可见的,因此很容易被他人查看和修改。这可能会导致代码的安全性和稳定性受到影响,甚至可能被恶意利用。因此,对JavaScript代码进行加密是非常重要的。 本文将介绍一些JavaScript代......