java位元組數組
① java byte數組 怎麼列印
java byte 數組,可以使用Array類提供的方法遍歷輸出列印,示例如下:
publicclassceshi{
publicstaticvoidmain(String[]args){
byte[]b=newbyte[12]('0x97','0x98');//byte數組
System.out.println(Arrays.toString(b));//位元組數組列印
}
}
輸出結果為:a,b
② java中如何將字元串轉化成特定長度的位元組數組
publicclassTest{
publicstaticvoidmain(String[]args){
byte[]byteArray="Test".getBytes();
byte[]byteArray2="測試".getBytes();
System.out.println("byteArray.length="+byteArray.length);
System.out.println("byteArray2.length="+byteArray2.length);
for(inti=0;i<byteArray.length;i++)
System.out.print((char)byteArray[i]);
System.out.println();
for(inti=0;i<byteArray2.length;i++)
System.out.print((char)byteArray2[i]);
}
}
漢字2個位元組編碼,1個漢字轉換成2bytes
③ 誰能告訴我java中的位元組數組是什麼意思,怎麼用。
顧名思義,位元組,就是一個空間,能存放任何類型的數據。一般編程中喜歡用它來存放文檔
④ java在內存中建立個位元組數組如果向這個位元組數組中寫入數據用哪個是用輸出流嗎還是用輸入流
可以考慮使用ByteArrayInputStream & ByteArrayOutputStream
位元組數組位於內存
另外,「輸入流是從硬碟到內存的讀操作」 & 「輸出流是從內存到硬碟的寫操作」 這句嚴格說不正確。輸入流、輸出流的源和目標均是抽象概念,不一定是硬碟或者文件的
⑤ java中byte[]是怎麼意思
byte即位元組的意思,是java中的基本類型,用心申明位元組型的變數。
通常在讀取非文本文件時(如圖片,聲音,可執行文件)需要用位元組數組來保存文件的內容。
在下載文件時,也是用byte數組作臨時的緩沖器接收文件內容。所以說byte在文件操作時是必不可少的。不管是對文件寫入還是讀取都要用到。
(5)java位元組數組擴展閱讀:
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Java語言是一門隨時代快速發展的計算機語言程序,其深刻展示了程序編寫的精髓,加上其簡明嚴謹的結構及簡潔的語法編寫為其將來的發展及維護提供了保障。
由於提供了網路應用的支持和多媒體的存取,會推動Internet和企業網路的Web的應用。
⑥ java中如何將字元串轉換成位元組數組
package com.sunjing.util;
import java.io.UnsupportedEncodingException;
/**
* 將Byte轉換為String 或者將String轉換為Byte
*
* @author Administrator
*
*/
public class ByteOrStringHelper {
/**
* 默認的字元集編碼
* UTF-8 一個漢字佔三個位元組
*/
private static String CHAR_ENCODE = "UTF-8";
/**
* 設置全局的字元編碼
* @param charEncode
*/
public static void configCharEncode(String charEncode){
CHAR_ENCODE = charEncode;
}
/**
* @param str 源字元串轉換成位元組數組的字元串
* @return
*/
public static byte[] StringToByte(String str) {
return StringToByte(str,CHAR_ENCODE);
}
/**
*
* @param srcObj 源位元組數組轉換成String的位元組數組
* @return
*/
public static String ByteToString(byte[] srcObj) {
return ByteToString(srcObj,CHAR_ENCODE);
}
/**
* UTF-8 一個漢字佔三個位元組
* @param str 源字元串
* 轉換成位元組數組的字元串
* @return
*/
public static byte[] StringToByte(String str,String charEncode) {
byte[] destObj = null;
try {
if(null == str || str.trim().equals("")){
destObj = new byte[0];
return destObj;
}else{
destObj = str.getBytes(charEncode);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return destObj;
}
/**
* @param srcObj 源位元組數組轉換成String的位元組數組
* @return
*/
public static String ByteToString(byte[] srcObj,String charEncode) {
String destObj = null;
try {
destObj = new String(srcObj,charEncode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return destObj.replaceAll("\0"," ");
}
}
⑦ java 問題:是不是凡是寫文件,都必須創建一個位元組數組大小隨意
1.不是必須的。
但創建位元組數組,可提高對文件的 讀取效率; 位元組數組起到一個緩存的作用
2, 大小不可隨意。
1. 大小不可超過64M,因為JVM默認的虛擬機大小就是64M; //也沒人這么干
2. 最好取1024的整數倍; //因為文件都精確到KB
於大的文件可用1024*1024為大小 //1M
3.先得到文件的大小,再用賦值數組大小與之相等即可,但文件不能過大。(我忘了這方法....)
更新後:
當前的流操作java都提供了自帶的緩沖區;
eg: BufferedReader、BufferedWrite、BufferedOutputStream、BufferedInputStream
使用這些就都不需要用位元組數組;
而BufferedReader中有一個readLine()方法,可一次讀取一行;效率還可以
其中的某些方法還具有跨平台性
⑧ java中位元組數組與字元數組用法有什麼區別
額 最基本的區別就是一個存儲位元組一個存儲字元啊
所以你只要搞清楚位元組和字元的區別就好了
位元組(Byte):位元組是通過網路傳輸信息(或在硬碟或內存中存儲信息)的單位。位元組是計算機信息技術用於計量存儲容量和傳輸容量的一種計量單位,1個位元組等於8位二進制,它是一個8位的二進制數,是一個很具體的存儲空間。
字元:人們使用的記號,抽象意義上的一個符號。 '1', '中', 'a', '$', '¥', ……一個字元(1char = 2byte = 16bit)
詳情可以自己網路一下 位元組和字元的區別
⑨ java中如何將位元組數組轉化成圖片
java將byte數組轉換成圖片,可以File和IO操作來完成,實例如下:
//byte數組到圖片到硬碟上 public void byte2image(byte[] data,String path){ if(data.length<3||path.equals("")) return;//判斷輸入的byte是否為空 try{ FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));//打開輸入流 imageOutput.write(data, 0, data.length);//將byte寫入硬碟 imageOutput.close(); System.out.println("Make Picture success,Please find image in " + path); } catch(Exception ex) { System.out.println("Exception: " + ex); ex.printStackTrace(); } }
⑩ 在java中如何把位元組數組存儲到資料庫
保存位元組數組到資料庫分兩步:
第一、利用FileInputStream.read(byte[])方法把內容讀取到byte[]數組中,比如圖片是由二進制數組成的,就可以定義為一個位元組數組。
第二、在資料庫中對應記錄欄位應該設置為blob類型,這樣就能夠順利保存了
事例代碼如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);
其中,yourByteArray是你讀出來的字元數組。