您的位置:首页 > Web前端

java学习之路---IO----System和BufferReader类

2013-11-25 21:20 459 查看
      


1.System.out

          System.out是PriteStream的对象,在PriteStream中定义一系列的print()和println()

     public class PrintDemo1
{
     public static void main(String[]
args) throws Exception{
[align=left]
[/align]
[align=left]          OutputStream out=System. out;//此时的输出时向屏幕输出的[/align]
[align=left]          [/align]
[align=left]          out.write( "hello world".getBytes());[/align]
[align=left]          [/align]
[align=left]          out.close();[/align]
[align=left]          [/align]
[align=left]          [/align]
[align=left]     }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]
[align=left]
[/align]

[align=left]hello world[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]2.System.err输出错误信息[/align]
[align=left]这个就不写了[/align]
[align=left]
[/align]
[align=left]3.System.in键盘输入流[/align]
[align=left]
[/align]

public class PrintDemo3
{
     public static void main(String[]
args) throws Exception{
[align=left]              InputStream in=System. in;[/align]
[align=left]              [/align]
[align=left]               byte b[]=new byte[1024];[/align]
[align=left]              [/align]
[align=left]              System. out.println("请输入内容" );[/align]
[align=left]              [/align]
[align=left]               int len=in.read(b);[/align]
[align=left]              [/align]
[align=left]              in.close();[/align]
[align=left]              System. out.println(new String(b,0,len));[/align]
[align=left]     }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]

请输入内容

asdasd

asdasd

上面程序会如果长度过长就会超过byte[1024],就会出现不会完全输出的结果

那我们可以不要长度限制

          public class PrintDemo3 {

     public static void main(String[]
args) throws Exception{

              InputStream in=System. in;

              

              StringBuffer buf= new StringBuffer();//用来接收数据

              

              System. out.println("请输入内容" );

              

               int temp=0;

              

               int len=0;

              

               while((temp=in.read())!=-1){

                         char c=(char )temp;

                         if(c=='\n' )

                        {

                              break;

                        }

                        buf.append(c);

              }

              

              

              in.close();

              System. out.println(new String(buf));

     }

}

结果:

[align=left]请输入内容[/align]
[align=left]我爱你[/align]
[align=left]鎴戠埍浣�[/align]
[align=left]
[/align]
[align=left]有出现了乱码,那我们需要怎样做喃?[/align]
[align=left]
[/align]
[align=left]我们可以让字符串全部输入缓冲区,然后一次性输出,这样就可以避免代码的乱码了[/align]
[align=left]
[/align]
[align=left]               需要用到BufferReader类[/align]
[align=left]
[/align]



buffReader类直接收字符流的实例

          public class BufferReaderDemo {
           public static void main(String[]
args) throws Exception{
[align=left]              BufferedReader buf= new BufferedReader(new InputStreamReader(System.in ));[/align]
[align=left]              [/align]
[align=left]              String str= null;[/align]
[align=left]              [/align]
[align=left]              System. out.println("请输入内容" );[/align]
[align=left]              [/align]
[align=left]              str=buf.readLine();[/align]
[align=left]              buf.close();[/align]
[align=left]              System. out.println(str);[/align]
[align=left]          }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]结果:[/align]

[align=left]请输入内容[/align]
[align=left]sadasdasdasdasdasd[/align]
[align=left]sadasdasdasdasdasd[/align]
[align=left]
[/align]
[align=left]下面来做一些例子:[/align]
[align=left]
[/align]
[align=left]               加法操作:[/align]
[align=left]
[/align]
[align=left]     public class BufferReaderDemo1 {[/align]
           public static void main(String[]
args)throws Exception {
[align=left]              BufferedReader buf= null;[/align]
[align=left]              buf= new BufferedReader(new InputStreamReader(System.in ));[/align]
[align=left]              [/align]
[align=left]              String str= null;[/align]
[align=left]              [/align]
[align=left]              System. out.println("请输入第一个数字" );[/align]
[align=left]              [/align]
[align=left]              str  =buf.readLine();[/align]
[align=left]               int i=Integer.parseInt(str);[/align]
[align=left]              [/align]
[align=left]              System. out.println("请输入第二个数字" );[/align]
[align=left]              [/align]
[align=left]              str=buf.readLine();[/align]
[align=left]              [/align]
[align=left]               int j=Integer.parseInt(str);[/align]
[align=left]              [/align]
[align=left]              buf.close();[/align]
[align=left]              [/align]
[align=left]              System. out.println(i+"+" +j+"=" +(i+j));[/align]
[align=left]          }[/align]
[align=left]}[/align]
[align=left]结果:[/align]

请输入第一个数字

2

请输入第二个数字

3

2+3=5



System类也可以改变System.in的输入流来源,也可以改变System.out和System.err的输出位置
               

public class SystemDemo1 {

           public static void main(String[]
args)throws Exception {

              System. setOut(new PrintStream( new FileOutputStream(new File("f:"+File.separator +"b.txt" ))));

              

              System. out.println("like" );

              System. out.println("hello" );

          }

}

程序运行后,不会在屏幕上显示,而是在文件b.txt中

system.err最好不要输出重定向

          System.in,改变输入来源

public class SystemDemo2
{
           public static void main(String[]
args) throws Exception{
[align=left]              System. setIn(new FileInputStream( new File("f:"+File.separator +"a.txt" )));[/align]
[align=left]              [/align]
[align=left]              InputStream in=System. in;[/align]
[align=left]               int len=0;[/align]
[align=left]               byte b[]=new byte[1024];[/align]
[align=left]              len=in.read(b);[/align]
[align=left]              in.close();[/align]
[align=left]              System. out.println(new String(b,0,len));[/align]
[align=left]          }[/align]
[align=left]
[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]结果:[/align]

[align=left]hello like!!![/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]输入来源来自文件a.txt中[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]

          

          

[align=left]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: