- import java.io.*;
- public class My_Test {
- public static void main(String[] args) {
- int b;
- try {
- FileOutputStream t = new FileOutputStream("out.txt");
- DataOutputStream f = new DataOutputStream(t); // DataOutputStream的构造方法必须以OutputStream以及InputStream的实例引用为参数;
- // 你想往里边存一个1,写成1的话,只是往里边存第1号ASCII值所对应的字符SOH
- // 写成'1',才是存字符1
- f.writeByte(1);
- f.writeByte('1');
- // 如果你想存a,那么久必须写成'a'
- f.writeByte('a');
- // 所以。很明显,不写''的话,只是存ASCII值锁对应的字符
- // 当你写成下面,代表a的ASCII值-48所对应的字符
- // a是97,97-48=49,49的ASCII值是1,所以存进去的值是1
- f.writeByte('a' - 48);
- f.writeByte(51 + '0');
- // 如果你想循环存进去0,1,2,3,4的话
- for (b = 0; b < 5; b++) {
- // 你这个写法等于,存ASCII值0 + 字符0所对应的ASCII值48,加后ASCII值一共等于48,对应的字符为'0'
- // 以此类推,存进去的一次是48所对应的a,49所对应的b....
- f.writeByte(b + '0');
- }
- f.close();
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- }
复制代码 我在你的代码里边加入了较为容易理解的解释
你仔细看一下应该懂了
你查看API后,也可以发现DataOutputStream这个类的write方法的参数,是字符,而不是字符串
你里边存进去的是字符,不是字符串,是需要和ASCII码对应的
http://wenwen.soso.com/z/q217420814.htm?sp=4000
详细的表你可以看这里 |