为什么readInt()进来是的那么怪的一个数字呢,还只能用writeInt()输出
大哥们讲讲writeInt和system.in.println的区别把
import java.io.*;
public class testmy {
public static void main(String[] args) throws IOException{
InputStream stdin = new FileInputStream ( "a.txt " );
DataInputStream in = new DataInputStream ( stdin );
OutputStream fout = new FileOutputStream ( "b.txt ");
DataOutputStream out = new DataOutputStream ( fout );
int i ;
i = in.readInt() ;
System.out.println( i );
out.writeInt ( i );
}
}
运行结果:
输入:
a.txt : 1
输出:
b.txt : 1
屏幕:822938125
------解决方案--------------------
System.out===〉“标准”输出流
int readInt()
throws IOException读取四个输入字节并返回一个 int 值。设 a 为第一个读取字节,b 为第二个读取字节,c 为第三个读取字节,d 为第四个读取字节。返回的值是:
(((a & 0xff) < < 24) | ((b & 0xff) < < 16) |
((c & 0xff) < < 8) | (d & 0xff))
此方法适用于读取用接口 DataOutput 的 writeInt 方法写入的字节。
返回:
读取的 int 值。
////////////////////////////////////////////////////////////////
我也看不懂了,你看看吧
同时希望高手给点通俗易懂的解释,我基础很差,抱歉
------解决方案--------------------
import java.io.*;
public class testmy {
public static void main(String[] args) throws IOException {
DataOutputStream f1 = new DataOutputStream(
new FileOutputStream( "a.txt ") );
f1.writeInt(12);
InputStream stdin = new FileInputStream( "a.txt ");
DataInputStream in = new DataInputStream(stdin);
System.out.println( in.readInt() );
f1.writeInt( 123 );
int i = in.readInt();
System.out.println( i );
f1.close();
/* OutputStream fout = new FileOutputStream( "b.txt ");
DataOutputStream out = new DataOutputStream(fout);
int i;
i = in.readInt();
System.out.println(i);
out.writeInt(i);*/
}
}
DataInputStream 和 DataInputStram的用法和别的不大一样
改了你的代码 简单示范一下 深入的我也不很明白
------解决方案--------------------
writeInt(int i)把i按四个字节,二进制形式写到输出流里,此处是文件输出流
822938125转换为二进制是 110001 00001101 00001010 00001101
每个字节对应的十进制是 49 13 10 13
字符 '1 ' 回车 '\r ' 换行 '\n ' 回车 '\r '
所以文件里看到的是 1
控制台输出的是 822938125
------解决方案--------------------
关注。。。。
------解决方案--------------------
楼上的楼上正解
------解决方案--------------------
java 1.5
import java.util.*
...
Scanner sc=new Scanner(System.in);
int c=sc.nextInt();