国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

okhttp下載文件 Java下載文件 javaokhttp下載文件 下載文件 java下載 okhttp下載 okhttp

這篇具有很好參考價(jià)值的文章主要介紹了okhttp下載文件 Java下載文件 javaokhttp下載文件 下載文件 java下載 okhttp下載 okhttp。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


示例 http客戶端 用的是 okhttp,也可以用 UrlConnetcion或者apache

1、引入Maven

okhttp官網(wǎng)

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.14.9</version>
</dependency>

也可以下載 okhttp jar方式引入文章來源地址http://www.zghlxwxcb.cn/news/detail-657309.html

1.1、okhttp發(fā)起請(qǐng)求官網(wǎng)Demo

public static final MediaType JSON = MediaType.get("application/json");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(json, JSON);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

2、下載文件

public class TestDownload {

    public static void main(String args[]) {
       // 圖片文件地址
        String url = "https://himg.bdimg.com/sys/portraitn/item/public.1.c9145b32.BtcNjpu-t6NEqWtWFh3ICg";
        
        // 創(chuàng)建一個(gè) okhttp客戶端線程池
        OkHttpClient client = new OkHttpClient.Builder()
                .connectionPool(new ConnectionPool(20, 2, TimeUnit.MINUTES))
                .build();
        
        // 構(gòu)建請(qǐng)求對(duì)象
        Request request = new Request.Builder().url(url).get().build();
        
        // 發(fā)起請(qǐng)求得到請(qǐng)求結(jié)果
        Response response = client.newCall(request).execute();
        
        // 獲取請(qǐng)求結(jié)果
        ResponseBody responseBody = response.body();
        if (null != responseBody) {
            // 獲取文件后綴類型 可以使用 responseBody.contentType() 獲取 ContentType,我這邊知道這個(gè)url文件的類型
            String suffix = ".jpeg";
            
            // 創(chuàng)建一個(gè)文件
            String filename = "E:\\test\\" + System.currentTimeMillis() + suffix;
            
            File file = new File(filename);
    
            // 判斷目錄是否存在,不存在則創(chuàng)建目錄
    
            File parent = new File(file.getParent());
            if(!parent.exists()){
                parent.mkdir();
            }
            
            // 判斷文件是否存在, 不存在創(chuàng)建文件
            if (!file.exists()) {
                if (file.createNewFile()) {
                    // 獲取請(qǐng)求結(jié)果輸入流
                    InputStream rInputStream = responseBody.byteStream();
                    
                    // 創(chuàng)建讀取字節(jié)流的byte數(shù)組
                    byte[] buffer = new byte[500];
                    
                    int areRead;
                    
                    // 創(chuàng)建文件輸出流
                    FileOutputStream outputStream = new FileOutputStream(file );
                    
                    // 使用輸入流讀取字節(jié),在輸出到文件
                    while ((areRead = rInputStream.read(buffer)) != -1) {
                        outputStream.write(buffer, 0, areRead);
                    }
                    rInputStream.close();
                    outputStream.close();
                }
            }
        }
        response.close();
    }
}

3、擴(kuò)充,讀寫 txt文件內(nèi)容

3.1讀寫內(nèi)容

    /**
     * 創(chuàng)建文件以及文件對(duì)應(yīng)的目錄
     * @param path 文件路徑,例如 E:\test\測(cè)試.txt
     * @return {@link File}
     */
    private File createFile(String path) throws IOException {
        File file = new File(path);
        
        // 判斷目錄是否存在
        File parent = new File(file.getParent());
        if(!parent.exists()){
            parent.mkdir();
        }
        
        if(!file.exists()){
            file.createNewFile();
        }
        return file;
    }
    
    /**
     * 讀取txt內(nèi)容
     * @param file {@link File}
     * @return 字符串
     */
    private String readTxt(File file) throws IOException {
        
        StringBuilder sb = new StringBuilder();
        
        // 使用字符流讀取
        BufferedReader reader = new BufferedReader(new FileReader(file));
        
        // 讀取每一行的內(nèi)容
        String readLine;
        
        while ((readLine = reader.readLine()) != null){
            sb.append(readLine);
        }
    
        String result = sb.toString();
        
        System.out.printf("讀取內(nèi)容: \n %s", result);
        
        reader.close();
        
        /*
        // 使用字節(jié)流讀取
        long fileLength = file.length();
        
        // 創(chuàng)建一個(gè)用于讀取指定字節(jié)大小的數(shù)組
        byte[] bytes = new byte[(int) fileLength];
        
        // 創(chuàng)建一個(gè)文件輸入流
        FileInputStream fileInputStream = new FileInputStream(file);
        
        // 使用 文件輸入流讀取字節(jié)輸入到 字節(jié)數(shù)組中
        int areRead = fileInputStream.read(bytes);
        
        String result2 = new String(bytes);

        fileInputStream.close();
   
         */
        return result;
    }
    
    @Test
    public void writeTxt() throws IOException {
        String path = "E:\\test2\\測(cè)試.txt";
        
        File file = createFile(path);
        
        // 讀取現(xiàn)在已有的內(nèi)容
        String readTxt = readTxt(file);
        
        // 創(chuàng)建一個(gè)文件輸出流
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        
        // 之前的內(nèi)容
        fileOutputStream.write(readTxt.getBytes(StandardCharsets.UTF_8));
    
        // 換行, 使用Java的自定義換行符號(hào),會(huì)根據(jù)不同系統(tǒng)平臺(tái)轉(zhuǎn)義
        String newLine = System.getProperty("line.separator");
        fileOutputStream.write(newLine.getBytes());
        
        // 追加的內(nèi)容
        fileOutputStream.write((String.valueOf(System.currentTimeMillis()) + " \r\n").getBytes(StandardCharsets.UTF_8));
        
        // 關(guān)閉資源
        fileOutputStream.flush();
        fileOutputStream.close();
    }

到了這里,關(guān)于okhttp下載文件 Java下載文件 javaokhttp下載文件 下載文件 java下載 okhttp下載 okhttp的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java之okhttp3請(qǐng)求方式

    Java之okhttp3請(qǐng)求方式

    在java開發(fā)中,發(fā)起http請(qǐng)求是非常常見的需求,常用的有HttpClient,下面聊一下okhttp3的請(qǐng)求方式。 1、引入okhttp3依賴 2、提供springboot工程及http接口 3、http請(qǐng)求 4、請(qǐng)求結(jié)果 get請(qǐng)求 post請(qǐng)求 form表單請(qǐng)求 可見發(fā)起http請(qǐng)求還是挺方便的,感興趣的小伙伴可以試試~~~///( v )~~~

    2024年02月13日
    瀏覽(15)
  • Java多線程文件下載器高文件下載速度

    在進(jìn)行大文件下載時(shí),使用多線程技術(shù)可以顯著提高下載速度。本文將介紹如何使用多線程下載器來實(shí)現(xiàn)并行下載,以加快文件下載過程。 多線程下載器是一種利用多線程同時(shí)下載文件的工具。它將大文件分割成多個(gè)小塊,并使用多個(gè)線程同時(shí)下載這些小塊文件。隨后,將下

    2024年02月11日
    瀏覽(22)
  • Java通過文件流和文件地址下載文件

    Java通過文件流和文件地址下載文件

    如何使用 MultipartFile 進(jìn)行文件上傳、下載到本地,并返回保存路徑呢: 用于在 Spring Boot 應(yīng)用中獲取文件流,然后處理上傳的文件,將文件保存到指定目錄并返回保存的文件路徑。下面對(duì)代碼的各個(gè)部分進(jìn)行簡要介紹: 上傳目錄設(shè)置 :在這個(gè)示例中, UPLOAD_DIR 常量用于定義上

    2024年02月12日
    瀏覽(27)
  • Java下載excel模板文件

    Java下載excel模板文件

    最近做了一個(gè)導(dǎo)入Excel的功能,需求: 先提供一個(gè)下載Excel模板的功能。 用戶下載好模板后,可以在模板文件當(dāng)中填寫要上傳的內(nèi)容,填寫完過后再進(jìn)行導(dǎo)入Excel,然后將用戶填寫的數(shù)據(jù)保存到數(shù)據(jù)庫當(dāng)中。 1.將模板放到resources目錄下,盡量創(chuàng)建一個(gè)專門的文件夾來存放模板

    2024年02月15日
    瀏覽(97)
  • Java-基于okhttp請(qǐng)求SSE接口流式返回

    最近在開發(fā)跟大模型相關(guān)的業(yè)務(wù),需要用java去請(qǐng)求大模型的對(duì)話接口并支持流式的返回,變用到了sse接口。首先介紹一下什么是SSE,SSE ( Server-sent Events )是 WebSocket 的一種輕量代替方案,使用 HTTP 協(xié)議。 嚴(yán)格地說,HTTP 協(xié)議是沒有辦法做服務(wù)器推送的,但是當(dāng)服務(wù)器向客戶

    2024年01月19日
    瀏覽(26)
  • 【Java實(shí)戰(zhàn)】Feign調(diào)用文件下載服務(wù)接口實(shí)現(xiàn)文件下載功能

    最近需要實(shí)現(xiàn)Feign調(diào)用服務(wù)提供者的文件下載接口,進(jìn)行文件下載功能,這里對(duì)功能的實(shí)現(xiàn)做一個(gè)簡單的記錄 通過調(diào)用服務(wù)提供者的文件下載接口,將文件傳輸?shù)牧鲾?shù)據(jù)通過 feign.Response 來接收,服務(wù)消費(fèi)者再將數(shù)據(jù)轉(zhuǎn)化 首先,在項(xiàng)目中引入Feign的依賴。你可以使用Maven進(jìn)行管

    2024年02月12日
    瀏覽(126)
  • java中excel文件下載

    1、System.getProperty(user.dir) 獲取的是啟動(dòng)項(xiàng)目的容器位置 2、 Files.copy(sourceFile.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING); StandardCopyOption.REPLACE_EXISTING 來忽略文件已經(jīng)存在的異常,如果存在就去覆蓋掉它 StandardCopyOption.COPY_ATTRIBUTES copy文件的屬性,最近修改時(shí)間,最近

    2024年02月13日
    瀏覽(26)
  • Java上傳下載ftp文件

    在Java中連接FTP服務(wù)器可以使用Apache Commons Net庫提供的FTPClient類。以下是一個(gè)簡單的示例代碼,演示如何連接到FTP服務(wù)器、進(jìn)行文件上傳和下載操作: 在上面的示例代碼中,你需要替換以下信息: server :FTP服務(wù)器的主機(jī)名或IP地址。 port :FTP服務(wù)器的端口,默認(rèn)為21。 userna

    2024年02月11日
    瀏覽(21)
  • java- SFTP文件上傳下載

    ? JSch是Java Secure Channel的縮寫,是一個(gè)java實(shí)現(xiàn)的可以完成sftp上傳下載的工具,我們可以集成它的功能到自己的應(yīng)用程序,本文介紹使用JSch實(shí)現(xiàn)的SFTP上傳下載的功能。 ChannelSftp類是JSch實(shí)現(xiàn)SFTP核心類,它包含了所有SFTP的方法,如 方法名 功能描述 put() 文件上傳 get() 文件下載

    2024年01月19日
    瀏覽(23)
  • JAVA Http接口獲取文件下載流,將下載的文件上傳阿里云

    ?需要根據(jù),業(yè)務(wù)數(shù)據(jù),將存在第三方平臺(tái)的數(shù)據(jù),下載至本地,或轉(zhuǎn)存阿里云OSS中。

    2024年02月16日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包