找回密码
 免费注册

QQ登录

只需一步,快速开始

本帖最后由 18285004693 于 2019-5-28 22:24 编辑

System.in:标准输入流,默认设备是键盘。System.out:标准输出流,默认设备是控制台。
System.err:标准错误流,默认设备是控制台。


使用 System.out 输出字节数组
  1. package ch13;
  2. import java.io.IOException;
  3. public class Test01
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         byte[] byteData=new byte[100];    //声明一个字节数组
  8.         System.out.println("请输入英文:");
  9.         try
  10.         {
  11.             System.in.read(byteData);
  12.         }
  13.         catch (IOException e)
  14.         {
  15.             e.printStackTrace();
  16.         }
  17.         System.out.println("您输入的内容如下:");
  18.         for(int i=0;i<byteData.length;i++)
  19.         {
  20.             System.out.print((char)byteData[i]);
  21.         }
  22.     }
复制代码
该程序的运行结果如下所示:
  1. 请输入英文:
  2. abcdefg hijklmn opqrst uvwxyz
  3. 您输入的内容如下:
  4. abcdefg hijklmn opqrst uvwxyz
复制代码
write() 的简单形式如下:
  1. void write(int byteval) throws 10Exception
复制代码
使用 ByteArrayInputStream 类编写一个案例,实现从一个字节数组中读取数据,再转换为 int 型进行输出。
  1. package ch13;
  2. import java.io.ByteArrayInputStream;
  3. public class test08
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         byte[] b=new byte[]{1,-1,25,-22,-5,23};    //创建数组
  8.         ByteArrayInputStream bais=new ByteArrayInputStream(b,0,6);    //创建字节数组输入流
  9.         int i=bais.read();    //从输入流中读取下一个字节,并转换成int型数据
  10.         while(i!=-1)
  11.         {    //如果不返回-1,则表示没有到输入流的末尾
  12.             System.out.println("原值="+(byte)i+"\t\t\t转换为int类型="+i);
  13.             i=bais.read();    //读取下一个
  14.         }
  15.     }
  16. }
复制代码
该程序的运行结果如下:
  1. 原值=1            转换为int类型=1
  2. 原值=-1            转换为int类型=255
  3. 原值=25            转换为int类型=25
  4. 原值=-22            转换为int类型=234
  5. 原值=-5            转换为int类型=251
  6. 原值=23            转换为int类型=23
复制代码
使用 ByteArrayOutputStream 类编写一个案例,实现将字节数组中的数据输出
  1. package ch13;
  2. import java.io.ByteArrayOutputStream;
  3. import java.util.Arrays;
  4. public class Test09
  5. {
  6.     public static void main(String[] args)
  7.     {
  8.         ByteArrayOutputStream baos=new ByteArrayOutputStream();
  9.         byte[] b=new byte[]{1,-1,25,-22,-5,23};    //创建数组
  10.         baos.write(b,0,6);    //将字节数组b中的前4个字节元素写到输出流中
  11.         System.out.println("数组中一共包含:"+baos.size()+"字节");    //输出缓冲区中的字节数
  12.         byte[] newByteArray=baos.toByteArray();    //将输出流中的当前内容转换成字节数组
  13.         System.out.println(Arrays.toString(newByteArray));    //输出数组中的内容
  14.     }
  15. }
复制代码
该程序的输出结果如下:
数组中一共包含:6字节[1, -1, 25, -22, -5, 23]


FileInputStream() 两个构造方法的使用。
  1. try
  2. {
  3.     //以File对象作为参数创建FileInputStream对象
  4.     FileInputStream fis1=new FiieInputStream(new File("F:/mxl.txt"));
  5.     //以字符串值作为参数创建FilelnputStream对象
  6.     FileInputStream fis2=new FileInputStream("F:/mxl.txt");
  7. }
  8. catch(FileNotFoundException e)
  9. {
  10.     System.out.println("指定的文件找不到!");
  11. }
复制代码
使用 FileInputStream 类读取并输出该文件的内容
  1. package ch13;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. public class Test10
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.         File f=new File("E:/myjava/HelloJava.java");
  10.         FileInputStream fis=null;
  11.         try
  12.         {
  13.             //因为File没有读写的能力,所以需要有个InputStream
  14.             fis=new FileInputStream(f);
  15.             //定义一个字节数组
  16.             byte[] bytes=new byte[1024];
  17.             int n=0;    //得到实际读取到的字节数
  18.             System.out.println("E:\\myjava\\HelloJava.java文件内容如下:");
  19.             //循环读取
  20.             while((n=fis.read(bytes))!=-1)
  21.             {
  22.                 String s=new String(bytes,0,n);    //将数组中从下标0到n的内容给s
  23.                 System.out.println(s);
  24.             }
  25.         }
  26.         catch(Exception e)
  27.         {
  28.             e.printStackTrace();
  29.         }
  30.         finally
  31.         {
  32.             try
  33.             {
  34.                 fis.close();
  35.             }
  36.             catch(IOException e)
  37.             {
  38.                 e.printStackTrace();
  39.             }
  40.         }
  41.     }
  42. }
复制代码














收藏

0 个回复

您需要登录后才可以回帖 登录 | 免费注册