IO类

来源:互联网 发布:阳春市优达网络 编辑:程序博客网 时间:2024/06/01 19:13

总结:
1.知识点:二进制文件与文本文件的区别:如果一个文件专用于存储文本字符而不包含字符之外的数

据称为文本文件,除此之外的文件都叫二进制文件。
2.FileOutputStream类和FileInputStream,FileWriter类和FileReader类的学习
import java.io.*;
public class FileStream {

 /**
  * @param args
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
         FileOutputStream out=new FileOutputStream("hello.txt");
         out.write("www.abc.com中国".getBytes());
         //write(byte[] b)方法会调用flush()方法来强制清空缓存
         //而write(int byte)不会自动调用该方法
         out.close();
        
         byte[] buf=new byte[1024];
         FileInputStream in=new FileInputStream("hello.txt");
         int len=in.read(buf);
         System.out.println(new String(buf,0,len));
         in.close();
        
         FileWriter out2=new FileWriter("hello2.txt");
         out2.write("abc中国");
         //write(String str)方法不会自动调用flush()方法因此如果没有close()不会创

建文件
         out2.close();
        
         char[] ch=new char[1024];
         FileReader fr=new FileReader("hello2.txt");
         int len2=fr.read(ch);
         System.out.println(new String(ch,0,len2));
         out2.close();
        
  
 }

}
3.PipedOutputStream类和PipedInputStream类、PipedWriter类和PipedReader类
PipedWriter类和PipedReader类能直接对字符进行写读,相对于对字节的读取效率更高。两

组类都涉及到对线程的操作,只有在两个线程之间建立连接之后才能实现两线程的数据交互


4.知识点:线程与进程的区别?
进程:进程就是程序的分段执行。首先,程序蓝本中的一段语句被复制到任务队列中,其次

,在执行需要的系统资源被配备齐全后由CPU调用执行。最后,当这段语句所需要实现的功能

被完成之后,就被清除出任务队列。
线程:线程是具有独立功能,比进程更小的执行单位。一个进程可以分成多个线程,每个线

程都可以独立执行,从而形成多条执行的路径。这多个线程不具有完全专用的系统资源,它

们共享同一进程的系统资源


思考:线程之间可以交互数据、实现通信、协调一致地工作。那么这里所说的线程是同一进

程中的所有线程么?
              import java.io.*;
public class PipedStreamTest {
 public static void main(String [] agrs) throws Exception{
  sender s1=new sender();
  //recevier r1=new recevier();
  receiverF r1=new receiverF();
  PipedOutputStream out=s1.getOutputStream();
  PipedReader in=r1.getReader();
  out.connect(in);
  s1.start();
  r1.start();
  /*SenderF s1=new SenderF();
  receiverF r1=new receiverF();
  PipedWriter out=s1.getWriter();
  PipedReader in=r1.getReader();
  out.connect(in);
 
  s1.start();
  r1.start();*/
  }
}
在上面程序中提示错误,即s1对象无法和r1对象建立连接,可见不同类型的线程类对象无法
建立连接。