• 输入输出流


    一、InputStream 抽象类 

      InputStream是输入字节数据用的类,所以InputStream类提供了3种重载的read方法.Inputstream类中的常用方法: 

      (1) public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值。 若返 回值=-1说明没有读取到任何字节读取工作结束。 
      (2) public int read(byte b[ ]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的  
      (3) public int read(byte b[ ], int off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中。  
      (4) public int available( ):返回输入流中可以读取的字节数。 注意:若输入阻塞,当前线程将被挂起,如果InputStream对象调用这个方法的话,它只会返回0,这个方法必须由继承InputStream类的子类对象调用才有用,   
      (5) public long skip(long n):忽略输入流中的n个字节,返回值是实际忽略的字节数, 跳过一些字节来读取  
      (6) public int close( ) :我们在使用完后,必须对我们打开的流进行关闭.  
     

          1) FileInputStream把一个文件作为InputStream,实现对文件的读取操作      
          2) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用  
          3) StringBufferInputStream:把一个String对象作为InputStream  
          4) PipedInputStream:实现了pipe的概念,主要在线程中使用  
          5) SequenceInputStream:把多个InputStream合并为一个InputStream

    代码:

      public class IOTest {

        static void testOne() throws Exception{
          File file=new File("E:/adb.txt");
          if(file.exists()){
             //构建一个输入流
             InputStream in=new FileInputStream(file);
               int size=in.available();
             System.out.println("文件大小:"+size);
             byte[] bytes=new byte[size];
             in.read(bytes);
             in.close();
             String str=new String(bytes);
             System.out.println("内容:"+str);
          }
        }
     
        static void testTwo() throws Exception{
          File file=new File("E:/adb.txt");
          if(file.exists()){
             //构建一个输入流
             InputStream in=new FileInputStream(file);
             OutputStream out=new FileOutputStream("F:/adb.txt");
             byte[] bytes=new byte[1024];//每次读取1024个字节
             int temp=0;
             while((temp=in.read(bytes))!=-1){
               out.write(bytes);
             }
             //关闭流
           out.flush();
             out.close();
                      in.close();
                      }
         }
         public static void main(String[] args) throws Exception {
            //testTwo();
            testOne();
         }
      }

     二、OutputStream 抽象类 

      OutputStream提供了3个write方法来做数据的输出,这个是和InputStream是相对应的。  
      1. public void write(byte b[ ]):将参数b中的字节写到输出流。  
      2. public void write(byte b[ ], int off, int len) :将参数b的从偏移量off开始的len个字节写到输出流。  
      3. public abstract void write(int b) :先将int转换为byte类型,把低字节写入到输出流中。  
      4. public void flush( ) : 将数据缓冲区中数据全部输出,并清空缓冲区。  
      5. public void close( ) : 关闭输出流并释放与流相关的系统资源。

        1) ByteArrayOutputStream:把信息存入内存中的一个缓冲区中  
            2) FileOutputStream:把信息存入文件中  
            3) PipedOutputStream:实现了pipe的概念,主要在线程中使用  
            4) SequenceOutputStream:把多个OutStream合并为一个OutStream 

        流结束的判断:方法read()的返回值为-1时;readLine()的返回值为null时。

  • 相关阅读:
    JDBC 访问数据库的流程
    JSP中两种include的区别
    javascript中循环语句 while、dowhile、forin、for用法区别
    php正则取得页面所有的图片地址
    php基础入门篇学习笔记
    php正则表达匹配中文问题分析
    .htaccess 301重定向详细教程
    忘记mysql的root密码重置方法
    php for循环语句的几种用法分析
    javascript邮箱验证代码分析
  • 原文地址:https://www.cnblogs.com/shiyoushao/p/6082240.html
Copyright © 2020-2023  润新知