1. 用java語言編寫程序,輸出各基本類型在內存中所佔位元組數。
System.out.println(Byte.SIZE);// 8
System.out.println(Integer.SIZE); //32
2. Java 位元組byte數組這樣輸入和輸出有什麼問題
for (byte t=0; t<256; t++)
改為
for (int t=0; t<256; t++)
這是位數的問題。byte只有128位,所以最多隻能代表128個數字,即:0-127,
所以byte t = 128;的時候你如果輸出t會發現t的值為-128,而數組中下標是不存在負數的,所以你要給b[-128]賦值的時候就會出錯。
3. JAVA中數值以二進制輸出BYTE類型的數值為什麼是四個位元組呢
String s=Integer.toBinaryString(b) ; //因這個是按整數來進行處理的,所以會是按四位元組輸出,需要處理一下
System.out.println( s.substring(s.length()-8) );
4. java怎麼輸出
java控制台輸出由print( ) 和 println( )來完成最為簡單。這兩種方法由rintStream(System.out引用的對象類型)定義。盡管System.out是一個位元組流,用它作為簡單程序的輸出是可行的。因為PrintStream是從OutputStream派生的輸出流,它同樣實現低級方法write(),write()可用來向控制台寫數據。PrintStream 定義的write( )的最簡單的形式如下:
void write(int byteval)
該方法按照byteval指定的數目向文件寫位元組。盡管byteval 定義成整數,但只有低位的8個位元組被寫入。下面的短例用 write()向屏幕輸出字元「A」,然後是新的行。
// Demonstrate System.out.write().
class WriteDemo {
public static void main(String args[]) {
int b;
b = 'A';
System.out.write(b);
System.out.write(' ');
}
}
一般不常用write()來完成向控制台的輸出(盡管這樣做在某些場合非常有用),因為print()和println() 更容易用。
四、PrintWriter類
盡管Java允許用System.out向控制台寫數據,但建議僅用在調試程序時或在常式中。對於實際的程序,Java推薦的向控制台寫數據的方法是用PrintWriter流。PrintWriter是基於字元的類。用基於字元類向控制台寫數據使程序更為國際化。PrintWriter定義了多個構造函數,這里所用到的一個如下:
PrintWriter(OutputStream outputStream, boolean flushOnNewline)
outputStream是OutputStream類的對象,flushOnNewline控制Java是否在println()方法被調用時刷新輸出流。如果flushOnNewline為true,刷新自動發生,若為false,則不發生。
PrintWriter支持所有類型(包括Object)的print( )和println( )方法,這樣,就可以像用ystem.out那樣用這些方法。如果遇到不同類型的情況,PrintWriter方法調用對象的toString()方法並列印結果。用PrintWriter向外設寫數據,指定輸出流為System.out並在每一新行後刷新流。例如這行代碼創建了與控制台輸出相連的PrintWriter類。
PrintWriter pw = new PrintWriter(System.out, true);
下面的應用程序說明了用PrintWriter處理控制台輸出的方法:
// Demonstrate PrintWriter
import java.io.*;
public class PrintWriterDemo {
public static void main(String args[]) {
PrintWriter pw = new PrintWriter(System.out, true);
pw.println("This is a string");
int i = -7;
pw.println(i);
double d = 4.5e-7;
pw.println(d);
}
}
該程序的輸出如下:
This is a string
-7
4.5E-7
5. 用java怎麼可以輸出char a='我'; 包含幾個位元組的長度
錯。樓上回答說明起對java的char類型根本不了解。。。根據java API提供的參考,java因為採用unicode的編碼方式,所以其char類型為2個位元組,16位;而不是c和c++所用的1個位元組(8位)。一個char可以存放一個漢字。再寫一些吧。另外,char是一種基本數據類型,不可能用基本數據類型調用方法吧?java還沒神到這個地步。Character 封裝類中有一個方法 static String toString(char c);就是將字元轉換成字元串因此,你可以這樣:char a='我';String str = Character.toString(a);System.out.println(str.length() );這樣就可以了。
6. java位元組輸入流什麼意思輸入的是位元組,輸出的是字元
實現上 位元組輸出流是繼承OutputStream 而字元輸出流繼承OutputStreamWriter
應用上 字元流是專門用來處理文字的,包含了對多國語言的支持,而位元組流主要是用來處理文字以外的如binary文件。
7. java把一個byte類型的數據的每一位都輸出怎麼做
//方法一
publicclassTest{
publicstaticvoidmain(String[]args){
bytea=123;
char[]arr=String.valueOf(a).toCharArray();
for(inti=0;i<arr.length;i++){
System.out.print(arr[i]+"");
}
}
}
//方法二
publicclassTest{
publicstaticvoidmain(String[]args){
bytea=123;
Stringstr=String.valueOf(a);
for(inti=0;i<str.length();i++){
System.out.print(str.substring(i,(i+1))+"");
}
}
}
//方法三
publicclassTest{
publicstaticvoidmain(String[]args){
bytea=123;
Byteb=newByte(a);
System.out.println(b.byteValue());
}
}
8. Java 中按位元組輸出的問題
問題是文件分兩種:格式化,非格式化。而所有的文件的本質都是位元組數組。所以當然有必要的了
9. java如何使用位元組輸入輸出流
位元組流用於處理二進制數據的讀取和寫入,它以位元組為單位,InputStream類和OutputStream類是位元組流的抽象類,它們定義了數據流讀取和寫入的基本方法。各個子類會依其特點實現或覆蓋這些方法
10. java怎麼把一個byte變數按二進制輸出
/**
* 將byte轉換為一個長度為8的byte數組,數組每個值代表bit
*/
public static byte[] getBooleanArray(byte b) {
byte[] array = new byte[8];
for (int i = 7; i >= 0; i--) {
array[i] = (byte)(b & 1);
b = (byte) (b >> 1);
}
return array;
}
/**
* 把byte轉為字元串的bit
*/
public static String byteToBit(byte b) {
return ""
+ (byte) ((b >> 7) & 0x1) + (byte) ((b >> 6) & 0x1)
+ (byte) ((b >> 5) & 0x1) + (byte) ((b >> 4) & 0x1)
+ (byte) ((b >> 3) & 0x1) + (byte) ((b >> 2) & 0x1)
+ (byte) ((b >> 1) & 0x1) + (byte) ((b >> 0) & 0x1);
}
使用:
byte b = 0x35; // 0011 0101
// 輸出 [0, 0, 1, 1, 0, 1, 0, 1]
System.out.println(Arrays.toString(getBooleanArray(b)));
// 輸出 00110101
System.out.println(byteToBit(b));
// JDK自帶的方法,會忽略前面的 0
System.out.println(Integer.toBinaryString(0x35));