日期:2014-05-20  浏览次数:20693 次

求取答案,请各位大神帮帮忙
本帖最后由 wangxiaoxiao88 于 2012-12-06 14:21:21 编辑
import java.io.*;
public class Gh {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根
      int b;
      byte buffer[]=new byte[100];//还有这一步的意思
      try{
       System.out.println("输入一行文本,并存入磁盘:");
       b=System.in.read(buffer);//这一步是什么意思
       FileOutputStream writefile=new FileOutputStream("line.text");
      writefile.write(buffer,0,b); 
      }
      catch(IOException e){
       System.out.println("Error"+e);
      }
}

}




求此程序的详细解释,最好有几个重要步骤的解释。
------解决方案--------------------
 byte buffer[]=new byte[100];//buffer用于存储临时数据
 b = inStream.read(buffer); //实际读取长度存于 b中
FileOutputStream writefile=new FileOutputStream("line.text");
writefile.write(buffer,0,b); 
//穿件 文件line.text,并将b写进去




------解决方案--------------------
byte buffer[]=new byte[100] 临时存放数据,最大100个字节
b=System.in.read(buffer);把在控制台输入的数据buffer,并且记录长度到b

FileOutputStream writefile=new FileOutputStream("D:/line.text");
这里我自己写入D盘,刚运行了LZ的,不知道跑那个盘曲了,文件。
这个就射声明一个文件写入流,确认文件写入位置。
writefile.write(buffer,0,b); 
文件写入,写入的数据从buffer里面获取,从0开始到b结束!
------解决方案--------------------
楼上正解!
public static void main(String[] args) {

      int b;
      
     // 定义100字节的内存缓冲区
      byte buffer[]=new byte[100];
      
      try{
       System.out.println("输入一行文本,并存入磁盘:");
       
       // 读取标准输入流,buffer里存放的是输入的内容,读取的字符个数返回给b
       // 注意如果输入完字符后敲回车,会发现b的值比实际输入的值大2,这是因为回车相当于输入\r\n占两个字符 
       b= System.in.read(buffer);

       // 定义一个输出流
       FileOutputStream writefile=new FileOutputStream("d:/line.text");
       
      // 把缓冲区的内容写到line.text中 
      writefile.write(buffer,0,b); 
      
      // 关闭输出流
      writefile.close();

      }
      catch(IOException e){
       System.out.println("Error"+e);
      }
}
------解决方案--------------------
byte buffer[]=new byte[100];//其中的buffer临时存放数据,为100字节。


b=System.in.read(buffer);//buffer里面存放的是控制台输入的内容,读取的字符长度存于b中。
多关注一下关于java流的问题。