首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问new FileInputStream().read()的有关问题

2012-02-19 
请教new FileInputStream().read()的问题import java.io.*public class FileOutputStream3{public static

请教new FileInputStream().read()的问题
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了 

热点排行
Bad Request.