精品主页 | 软件下载 | 系统下载 | 精品导航| 精彩图片 | 转帖工具 | 版主申请 | 影视下载
发新话题
打印

新手必读 Java中流的概念

新手必读 Java中流的概念

  


                  寝室同学问了我个关于Java流的问题,在解答完后很有感触,我认为可能所有新手都可能有这样的问题,所以总结一下发出来,呵呵.供大家参考:



  那,同学问我的题,提其实我也没太听明白什么意思,因为他表达不请,但有一点我是明确的,就是他要从键盘输入数(控制台的那种),然后计算出长方形的面积.类似这个问题.呵呵,其实这个问题很简单,在C  里只需cin就ok了,但在java里,不是那么简单,他本来用System.in.read();但这个函数独进后返回的是int形,但实际上是ASCII码,比如输入1,那么返回的是51(记不清1的ASC码了),而不是1,当然你可以给他转换成char但char有转不了int,呵呵,总之很麻烦,俺也说不清,所以就换了一种方法.所以我换了一种方法,该方法如下,我想大概有不少新人都不太会,所以给出源码如下:



packagetest;



importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;



publicclassTestInOut{



 /**

 *@paramargs

 */

 publicstaticvoidmain(String[]args){

  //TODO自动生成方法存根

  Testtest=newTest();

  BufferedReaderstdin=newBufferedReader(newInputStreamReader(System.in));

  System.out.print("请输入长方形的长:");

  try{

   test.setA(Float.parseFloat(stdin.readLine()));

   System.out.print("请输入长方形的宽:");

   test.setB(Float.parseFloat(stdin.readLine()));

   test.setArea();

   System.out.print("该长方形的面积是:");

   System.out.println(test.getArea());

  }catch(IOExceptione){

   //TODO自动生成catch块

   e.printStackTrace();

  }

 }

}



classTest{

 privatefloata;

 privatefloatb;



 publicfloatgetB(){

  returnb;

 }

 publicvoidsetB(floatb){

  this.b=b;

 }

 publicvoidsetA(floata){

  this.a=a;

 }

 publicfloatgetA(){

  returna;

 }



 privatefloatarea;

 publicfloatgetArea(){

  returnarea;

 }

 publicvoidsetArea(){

  area=a*b;

 }

}




  


                  


执行结果:



   请输入长方形的长:3

   请输入长方形的宽:4

   该长方形的面积是:12.0



  这里面的BufferedReader便是个流了,呵呵,所以我就顺便把流的东西总结了一下,请看下面代码:



packagetest;

importjava.io.*;

publicclassIOStreamDemo{

 publicvoidsamples()throwsIOException{

  //1.这是从键盘读入一行数据,返回的是一个字符串

  BufferedReaderstdin=newBufferedReader(newInputStreamReader(System.in));

  System.out.print("Enteraline:");

  System.out.println(stdin.readLine());



  //2.这是从文件中逐行读入数据



  BufferedReaderin=newBufferedReader(newFileReader("IOStreamDemo.java"));

  Strings,

  s2=newString();

  while((s=in.readLine())!=null)

   s2 =s "";

   in.close();



   //3.这是从一个字符串中逐个读入字节

   StringReaderin1=newStringReader(s2);

   intc;

   while((c=in1.read())!=-1)

    System.out.print((char)c);



    //4.这是将一个字符串写入文件

    try{

     BufferedReaderin2=newBufferedReader(newStringReader(s2));

     PrintWriterout1=newPrintWriter(newBufferedWriter(

newFileWriter("IODemo.out")));

     intlineCount=1;

     while((s=in2.readLine())!=null)

      out1.println(lineCount   ":" s);

      out1.close();

    }catch(EOFExceptione){

     System.err.println("Endofstream");

    }

   }

}



  我想看了上面的代码,大家应该对流有了一个简单的认识,会用它从键盘读数据了.

TOP

发新话题