黑马程序员 (4)JAVA高级 IO输入与输出部分

时间:2021-09-01 13:18:41

 首先是File类,File类唯一JAVA中代表文件信息的的类,而不是文件内容。

RandomAccessFile类,使我们非常灵活的操作文件。SkipByte控制跳转,从文件的哪个部分进行操作。

学习InputStream类,该类的int read()等各种方法。OutputStream类,以及各种继承他的子类。

在讲解flush()方法时老师举了个自己的例子,我十分赞同。应当着重提高我们对编写程序的理解,拓宽视野,能有效的结合自身的认识解决实际问题。

独立编程实现简单的创建文件,通过输出流写入一个文件内容,再通过输入流读取文件的内容,输出。

Reader类和Writer类。用于简化对输入输出的编程。Reader类和Writer类主要用于读写文本文件的内容。练习通过使用FileWriter来写入一个文件,通过FileReader读取一个文件的内容。

PipedInputStream类和PipedOutputStream一般都要extends Thread类,类似两个管道,通过connect函数连接,进行通信。通过编程实现视频例子。

 Integer n = numbers.get("two");
  if (n != null) {
  System.out.println("two = " + n);
  }
public PipedOutputStream getOutputStream(){  //返回管道输出流对象
      return out;
   }
   //这是一个线程类,所以它应该覆盖Thread的run方法,run方法在线程类启动时自动运行
   public void run(){ //这里的run方法用于向PipedOutputStream中写入一串数据
      String strInfo = new String("hello,receiver!");
      try{  //write和close方法都可能有异常出现
         out.write(StrInfo.getBytes());
         out.close();
      }
      catch(Exception e){
         e.printStackTrace();}}}

ByteArrayInputStream和ByteArrayOutputStream类是创建一个字节数组缓冲区,操作一个数组长度的字节流的编程更加灵活,实用。

try {
    ByteArrayOutputStream   bos   =   new   ByteArrayOutputStream(100);
         ObjectOutputStream   oos   =   new   ObjectOutputStream(bos);
         oos.writeObject( "asdfsad ");  
         byte   []   bytes   =   bos.toByteArray();
     InputStream    bais = new ByteArrayInputStream(bytes);
     ObjectInputStream ois = new ObjectInputStream(bais);
    } catch (IOException e) {
     e.printStackTrace();
    }

try {
Runtime.getRuntime().exec(%%1); //"assoc .txt =mynote" "assoc [.ext[=[filetype]]]" 
} catch (IOException e) {
e.printStackTrace();
}

这个一个文件关联的代码片段,个人感觉很有用。