import java.io.*;
public class FileOutputStream3
{
public static void main(String[] args)throws Exception
{ File f1=new File("c:\\c.txt");
File f2=new File("c:\\a.txt"); // c.txt,里的内容是1234567890
FileInputStream fis=new FileInputStream(f1);
FileOutputStream fos=new FileOutputStream(f2,false);
char ch;
byte[] b=new byte[(int)f1.length()];
// byte[] b=new byte[f1.length()];
System.out.println(fis.read(b,0,10)); //这里为什么会输出的是10??
fis.read(b,0,10);
// System.out.println(fis.read(b,5,3)); //这里为什么会输出的是49?? System.out.println(b[0]);
for(int i=0;i<f1.length();i++)
{
ch=(char)fis.read();
fos.write(b[i]);
System.out.println(b[i]); //这里为什么输出49,50,51....... ??
}
// System.out.println(fis.read(b,5,3)); //而这里又输出0??
fos.close(); //关闭
}
}
输出的不应该是个位数吗?怎么会是两位数??
------解决方案--------------------
- Java code
System.out.println(fis.read(b, 0, 10)); // 这里为什么会输出的是10??这里独到10个字节,因此fis.read(b, 0, 10)返回的值是10System.out.println(b[i]); // 这里为什么输出49,50,51....... ??这里读到的是Ascii码的0123456789,转成int就是对应就是48到57System.out.println((char)b[i]);这样打印就是0123456789了