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));