主頁 > 移動端開發 > 【小白學Java】D31》》》IO流 之 緩沖流 & 轉換流

【小白學Java】D31》》》IO流 之 緩沖流 & 轉換流

2021-07-30 07:59:56 移動端開發

在這里插入圖片描述



【友情鏈接】???IO流 之 File類 & 遞回
【友情鏈接】???IO流 之 過濾器 & 位元組流
【友情鏈接】???IO流 之字符流 & 屬性集(Properties集合)
【友情鏈接】???IO流 之 緩沖流 & 轉換流
【友情鏈接】???IO流 之 序列化流 & 列印流


一、緩沖流

1. 概述

緩沖流,也叫高效流,是對4個基本的(位元組/字符)(輸入/輸出)流的增強,所以緩沖流也有4個流,

按照資料型別可分為:

  • 位元組緩沖流:BufferedInputStream , BufferedOutputStream
  • 字符緩沖流: BufferedReader ,BufferedWriter

緩沖流的基本原理,是指在創建流的物件時,同時會創建一個內置的默認大小的緩沖區陣列,通過緩沖區來進行讀寫,可以減少系統的 IO次數,從而能夠提高讀寫的效率,

2.BufferedOutputStream位元組緩沖輸出流

BufferedOutputStream extends OutputStream

該類繼承了父類OutputStream的共性成員方法有:

public void close():關閉此輸出流并釋放與此流相關聯的任何系統資源,
public void flush():重繪此輸出流并強制任何緩沖的輸出位元組被寫出,
public void write(byte[] b)
		將b.length位元組從指定的位元組陣列寫入此輸出流,
		
public void write(byte[ ] b, int off, int len):
從指定的位元組陣列寫入len位元組,從偏移量off開始輸出到此輸出流

public abstract void write (int b) :將指定的位元組輸出流,
BufferedOutputStream的構造方法:
    BufferedOutputStream(OutputStream out)
            創建一個新的緩沖輸出流,將資料寫入指定的底層輸出流中
    BufferedOutputStream(OutputStream out,int size)
            創建一個新的緩沖輸出流,
            將具有指定緩沖區大小的資料寫入到指定的底層輸出流中

	引數:
        OutputStream out ;位元組輸出流
            可以傳遞FileOutputStream類的物件,
           		 緩沖流會為FiLeOutputStream類的物件增加一個緩沖區,
            		這樣,會大大提高FileOutputStream的寫入效率
       int size:指定緩沖流內部暖沖區的大小,不指定則系統默認大小

位元組緩沖輸出流的使用步驟:

  • 1.創建FileOutputStream類的物件并在構造方法中指定要輸出的路徑

  • 2.創建BufferedOutputStream類的物件并在構造方法中傳遞FileOutputStream類物件的物件,提高FileOutputStream物件效率

  • 3.使用BufferedOutputStream類的物件中的write()方法,將資料寫入到內部的緩沖區中

  • 4.使用BufferedOutputStream類的物件中的flush()方法將內部緩沖區中的資料重繪到檔案中去

  • 5.釋放資源(先呼叫fLush()方法重繪資料),所以上面的第4步可以省略

示例代碼:

//1.創建FileOutputStream類的物件并在構造方法中指定要輸出的路徑
FileOutputStream fos = new FileOutputStream(
"D:\\BigData\\java\\javalearn\\src\\com\\data\\data1\\test.txt");
// 2.創建BufferedOutputStream類的物件并在構造方法中傳遞FileOutputStream類物件的物件,提高FileOutputStream物件效率
BufferedOutputStream bos = new BufferedOutputStream(fos);
//3.使用BufferedOutputStream類的物件中的write()方法,將資料寫入到內部的緩沖區中
bos.write("北慕辰的字符緩沖輸出流".getBytes());
//4.使用BufferedOutputStream類的物件中的flush()方法將內部緩沖區中的資料重繪到檔案中去
bos.flush();
//5.釋放資源(先呼叫fLush()方法重繪資料),所以上面的第4步可以省略
bos.close();
fos.close();

測驗結果:
在這里插入圖片描述

3.BufferedIutputStream位元組緩沖輸入流

BufferedInputStream extends InputStream
該流也繼承了父類的共性成員方法:

int read()   從輸入流中讀取資料的下一個位元組,
int read(byte[ ] b) 
	從輸入流中讀取一定數量的位元組,并將其存盤在緩沖區陣列b中,
void close()  關閉此輸入流并釋放與該流關聯的所有系統資源,
BufferedInputStream的構造方法:

  BufferedInputStream(InputStream in)
       創建一個BufferedInputStream類的物件并保存其中的引數,
       				即輸入流in,以便將來使用,    
  BufferedInputStream(InputStream in, int size)
            創建具有指定緩沖區大小的BufferedInputStream類的物件,
            		并保存其中的引數,即輸入流
    構造方法中的引數:
    InputStream in : 位元組輸入流
        可以傳遞FileInputStream類的物件
        	級沖流會給FiLeInputStream增加一個緩沖區,
        		可以大大的提高FileInputStream的讀取效率
        
    int size: 指定緩沖流內部的緩沖區的大小,不指定則系統默認大小

位元組緩沖輸入流使用步騷:

  • 1.創建FileInputStream類的物件并在構造方法中指定要讀取的資料源(也就是檔案路徑)

  • 2.創建BufferedInputStream類的物件并在構造方法中傳遞已經創建好的FiLeInputStream類的物件, 大大提高了FileInputStream類的物件的讀取效率

  • 3.使用BufferedInputStream物件中的read()方法讀取檔案

  • 4.呼叫close()方法釋放資源

實體代碼:

//1.創建FileInputStream類的物件并在構造方法中指定要讀取的資料源(也就是檔案路徑)
FileInputStream fis = new FileInputStream(
     "D:\\BigData\\java\\javalearn\\src\\com\\data\\data1\\test.txt");
//2.創建BufferedInputStream類的物件并在構造方法中傳遞已經創建好的FiLeInputStream類的物件,
//     大大提高了FileInputStream類的物件的讀取效率
BufferedInputStream bis = new BufferedInputStream(fis);
//3.使用BufferedInputStream物件中的read()方法讀取檔案
//        int sum;
//        while ((sum=bis.read())!=-1){
//            System.out.println(sum);
//        }
byte[] bytes=new byte[1024];
int sum=0;//用來記錄每次讀取的位元組個數
while ((sum=bis.read(bytes))!=-1){
 	System.out.println(new String(bytes,0,sum));
}
//4.呼叫close()方法釋放資源
bis.close();
fis.close();

測驗結果;
在這里插入圖片描述

4.BufferedWriter:字符緩沖輸出流

BufferedWriter extends Writer

該類繼承了父類Writer的共性成員方法有:

void write(int c)       寫入單個字符
void write(char[]cbuf)  寫入字符陣列
abstractvoid write(char[] cbuf,int off,int len)
	    寫入字符陣列的某部分, 從off偏移量開始,寫入len個字符數
void write(String str)   寫入字串
void write(String str,int off,int lenb) 
		寫入字串的某部分,從off偏移量開始,寫入lenb個字符數
void flush()  劇新該流的緩沖
void close()  關閉此流,但要先重繪它

1.BufferedWriter構造方法:
    BufferedWriter(Writer out)
    	創建一個使用認大小輸出緩沖區的緩沖字符輸出流,
    BufferedWriter(writer out, int sz)
    	創建一個使用給定太小輸出緩沖區的新緩沖字符輸出渣,
    構造方法的引數:
        Writer out:字符輸出凌
            可以傳適FileWriter ,
            	緩沖流會給FileWriter增加一個級沖區,
            		提高FileWriter的寫入效率
        int size:  指定緩沖區的大小,不寫別認大小

2. BufferedWriter中特有的成員方法;
    void newLine( )
       寫入一個行分隔符,會根據不同的作業系統,獲取不同的行分隔符來換行
   
    換行符號
      windows : \r\n
      Linux:/n
      mac: /r

字符緩沖輸出流使用步騷:

  • 1.創建字符緩沖輸出流的物件,并在構造方法中傳遞字符輸出流

  • 2.呼叫字符緩沖輸出流中的write()方法,將資料寫入到記憶體緩沖區中

  • 3.呼叫字符緩沖輸出流中的flush()方法,將記憶體緩沖區中的資料,重繪到檔案中去

  • 4.釋放資源

示例代碼:

//1.創建字符緩沖編出流的物件,在構造方法中傳遞字符輸出流
BufferedWriter bw = new BufferedWriter(
       new FileWriter("D:\\BigData\\java\\javalearn\\src\\com\\data\\data1\\test.txt"));
//2.呼叫字符緩沖錦出流中的write()方法,把資料寫入到記憶體緩沖區中
for (int i = 0; i < 5; i++) {
   bw.write("北慕辰"+i);
  //bw.write("\r\n");
   bw.newLine();
}
//3.呼叫字符緩沖輸出流中的flus()方法,將記憶體緩沖區中的資料,重繪到檔案中
bw.flush();
//4.釋放資源
bw.close();

測驗結果:
在這里插入圖片描述

5.BufferedReader:字符緩沖輸入流

BufferedReader extends Reader

該類繼承了父類Reader的共性成員方法有:

public void close(): 關閉此流并釋放與此流相關聯的任何系統資源,

public int read(: 從輸入流中讀取一個字符,

public int read(char[ ] cbuf):
 			從輸入流中讀取一些字符,并將它們存盤到字符陣列 cbuf中,

1. BufferedReader類的構造方法:
    BufferedReader(Reader in)
            創建一個使用系統默認大小的,輸入緩沖區的緩沖字符輸入流,
    BufferedReader(Reader in, int size)
            創建一個使用指定大小的,輸入緩沖區的緩沖字符輸入流,
    引數;
        Reader in: 字符輸入流
        可以傳遞FileReader,緩沖流會給FileReader增加一個緩沖區,
                提高FileReader的讀取效率
                
2.BufferedReader類的特有的成員方法:
    String readiine( ): 讀取一個文本行.     
      讀取一行資料,行的終止符號,
        讀取到、換行(‘ \n ')、回車('\r')或回車后直接跟著換行(\r\n)
        		字符之一就會認為某行已讀完:
   注意:
   方法的回傳值為包含該行內容的字串,不包含任何的行終止符,
       		如果已到達流的末尾,那么就會回傳null

示例代碼;

//1.創建字符緩沖編入流物件,構造方法中傳遞字符涂入流
BufferedReader br = new BufferedReader(
        new FileReader("D:\\BigData\\java\\javalearn\\src\\com\\data\\data1\\test.txt"));
//2.使用字行緩中輸入流物件中的方法read / readLine讀取文本

//2.1 read()
//        int sum;
//        while ((sum=br.read())!=-1){
//            System.out.print((char) sum);
//        }
//2.2 readLine()
String line;
while ((line=br.readLine())!=null){
    System.out.println(line);
}
// 3.釋放資源
br.close();

測驗結果:
在這里插入圖片描述

二、轉換流

了解什么是字符編碼

我們知道,在計算機中儲存的資訊都是用二進制數表示的,而我們在計算機螢屏上看到的數字、英文、漢字等字符都是計算機將二進制數轉換之后的結果,轉換都是按照某種規則來進行的,將字符存盤到計算機中,一般稱為編碼;將存盤在計算機中的二進制數按照某種規則決議顯示出來,一般稱為解碼, 字符的編碼和解碼需要使用同一種規則,否則就會出現亂碼情況,而,字符編碼 就是指自然語言的字符和二進制數之間轉換的規則,

了解什么是字符集

字符集也稱為編碼表,它是一個系統支持的所有字符的集合,其中包括各個國家的文字、標點符號以及圖形符號、數字等各種字符,編碼表指的就是生活中的文字和計算機中的二進制對應的轉換規則,
下圖是我們常見的字符集:一套字符集必然至少有一個字符編碼
在這里插入圖片描述ASCII字符集:

  • ASCll ( American Standard Code for Information Interchange,美國資訊交換標準代碼),它是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語,其中主要包括有控制字符(回車鍵、退格、換行鍵等)以及可顯示字符(英文大小寫字符、阿拉伯數字和西文符號),
  • 基本的ASCII字符集使用7位 ( bits )來表示一個字符,共有128個字符,而,ASCII的擴展字符集使用8位( bits )來表示一個字符,共256個字符,以方便支持歐洲常用字符,

ISO-8859-1字符集:

  • 拉丁碼表,別名Latin-1,它是用于顯示歐洲使用的語言,包括荷蘭、丹麥、德語、意大利語、西班牙語等,
  • ISO-8859-1使用單位元組編碼,其也兼容ASCII編碼,

GBxxx字符集:

  • GB指的就是國標的意思,是為了顯示中文而專門設計的一套字符集,
  • GB2312字符集:簡體中文碼表,一個小于127的字符的意義與原來相同,但兩個大于127的字符連在一起時,就表示一個漢字,這樣大約可以組合了包含7000多個簡體中文漢字,此外數學符號、羅馬希臘的字母、日文的假名們都編進去了,而且在ASCII里本來就有的數字、標點、字母都統統重新編了兩個位元組長的編碼,這就是我們常說的全角字符,而原來在127號以下的那些就叫半角字符了,
  • GBK:是最常用的中文碼表,它是在GB2312標準基礎上的擴展規范,使用了雙位元組編碼方案 ,一共收錄了21003個漢字,完全兼容GB2312標準,同時支持繁體漢字以及日韓漢字等,
  • GB18030字符集:是最新的中文碼表,它收錄了漢字70244個,采用多位元組偏碼,每個字可以由1個、2個或4個位元組組成,并且它支持中國國內少數民族的文字,同時支持繁體漢字以及日韓漢字等,

Unicode字符集:

  • Unicode編碼系統是為表達任意語言的任意字符而設計的,是業界的一種標準,也稱為統一碼、標準萬國碼
  • 它最多使用4個位元組的數字來表達每個字母、符號,或者文字,有三種編碼方案分別是UTF-8、UTF-16和UTF-32,其中最為常用的UTF-8編碼,
  • UTF-8編碼,可以用來表示Unicode標準中任何字符,它是電子郵件、網頁以及其他存盤或者傳送文字的應用中優先采用的編碼,互聯網工程作業小組(IETF ) 要求所有的互聯網協議都必須支持UTF-8編碼,所以,我們開發的Web應用,也需要使用UTF-8編碼,它使用一至四個位元組為每個字符編碼,它的編碼規則如下:
  • 1、128個US-ASCII字符,只需要一個位元組編碼,
  • 2、拉丁文等字符,需要兩個位元組編碼,
  • 3、大部分常用字(含中文),使用三個位元組編碼,
  • 4、其他極少使用的Unicode輔助字符,使用四位元組編碼,

轉換流的特點就是可以指定任意格式的編碼

1. OutputStreamWriter

在java.io包下的OutputStreamWriter 繼承了 Writer類,OutputStreamWriter類,是字符流通向位元組流的橋梁,它可以使用指定的字符集charset,將要寫入流中的字符編碼成位元組,

該類繼承了父類Writer的共性成員方法有:

void write(int c)       寫入單個字符
void write(char[]cbuf)  寫入字符陣列
abstractvoid write(char[] cbuf,int off,int len)
	    寫入字符陣列的某部分, 從off偏移量開始,寫入len個字符數
void write(String str)   寫入字串
void write(String str,int off,int lenb) 
		寫入字串的某部分,從off偏移量開始,寫入lenb個字符數
void flush()  劇新該流的緩沖
void close()  關閉此流,但要先重繪它

OutputStreamWriter的構造方法

1. OutputStreamWriter(Outputstream out)
 	創建使用默認字符編碼的OutputStreamWriter類的物件
2. OutputStreamWriter(OutputStream out,String charsetName)
 	創建使用指定字符集的 OutputStreamWriter類的物件

方法中的引數:

OutputStream out指位元組輸出流,可以用來將轉換之后的位元組寫入到檔案中
String charsetName 是指定的編碼表的名稱,它不區分大小寫,		
	可以是utf-8/UTF-8, gbk/GBK 等,若不指定,那么會默認使用utf-8

OutputStreamWriter的使用步驟:

  • 1.創建OutputStreamWriter類的物件,并在杓造方法中傳遞位元組輸出流和指定的編碼表名稱
  • 2.使用OutputStreamWriter類的物件中的write()方法,把字符轉換為位元組存盤在緩沖區中(編碼)
  • 3.使用OutputStreamWriter類的物件中的fliush()方法,把記憶體緩沖區中的位元組重繪到檔案中去
  • 4.呼叫close()方法,釋放資源

2. InputStreamReader

在java.io包下的InputStreamReader繼承了Reader類, InputStreamReader類,是位元組流通向字符流的橋梁,它可以使用指定的字符集charset,讀取位元組并將其解碼為字符,

InputStreamReader類的構造方法:

1. InputStreamReader(Inputstream in)
 	創建一個使用默認字符集的InputStreamReader類的物件,
2. InputStreamReader(Inputstreom in,String chorsetNome)
	創建一個使用指定字符集的InputStreomReader類的物件

構造方法的引數:

InputStreae in :位元組輸入流,用來讀取檔案中保存的位元組
String charsetName 是指定的編碼表的名稱,它不區分大小寫,		
	可以是utf-8/UTF-8, gbk/GBK 等,若不指定,那么會默認使用utf-8

InputStreamReader的使用步婆:

  • 1.創建InputStreomReader物件并在杓造方法中傳遞位元組輸入流和指定的編碼表的名稱
  • 2.使用InputStreoamReader類的物件中的read()方法,讀取檔案
  • 3.呼叫close()方法,釋放資源

注意:
構造方法中指定的編碼表名稱要和檔案的編碼相同,否則產生亂碼



在這里插入圖片描述

制作不易,各位友友們,大佬們給點鼓勵!

點贊👍 👍 👍 收藏+關注 一鍵三連走起!

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/290910.html

標籤:其他

上一篇:??[靈魂拷問]Android面試高頻100問(架構師方向)??【建議收藏】

下一篇:Android使用OKhttp3實作登錄注冊功能+springboot搭建后端

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more