java IO 的api笔记

InputStream  OutputStream 字节输入输出流的抽象基类
Reader Writer  字符输入输出流的抽象基类


InputStreamReader OutputStreamWriter 字节流到字符流的桥梁,可以指定编码方式

DataInputStream DataOutputStream 可以输入输出基本类型
主要方法有
readBoolean() writeBoolean(boolean v)




BufferedReader BufferedWriter 带缓冲的字符输入输出流
   while((s=br.readLine())!=null)
   {
        bw.write(s,0,s.length());
    }


PrintWriter 格式化输出,部分功能类似于DataOutputStream
PrintWriter(File file)
          使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
          创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
          根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
          通过现有的 OutputStream 创建新的 PrintWriter。
PrintWriter(String fileName)
          创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
          创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out)
          创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
          创建新 PrintWriter。

Scanner 可以使用正则表达式来分析基本类型和字符串的简单文本扫描器
String input = "1 fish 2 fish red fish blue fish";
     Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
     System.out.println(s.nextInt());
     System.out.println(s.nextInt());
     System.out.println(s.next());
     System.out.println(s.next());
     s.close(); 






String input = "1 fish 2 fish red fish blue fish";
     Scanner s = new Scanner(input);
     s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
     MatchResult result = s.match();
     for (int i=1; i<=result.groupCount(); i++)
         System.out.println(result.group(i);
     s.close(); 




在Java的IO流中有一种很特殊的流就是管道流类:PipedInputStream     PipedOutputStream.这两个类的实例对象必须要通过connect方法连接.  
   
    其实看这么一个程序就知道了管道流类的使用方法.  
   
  //sender.java   
    
  import   java.io.*;   
  import   java.util.*;   
  public   class   sender   extends   Thread   
  {   
                PipedOutputStream   out   =   new   PipedOutputStream();   
                public   PipedOutputStream   getOut()   
                  {   
                          return   out;   
                }   
                public   void   run()   
                {   
                          String   str   =   "Hello,receiver   !   I`m   sender\n";   
                            try   
                            {   
                                      out.write(str.getBytes());   
                                      out.close();   
                          }   
                            catch(Exception   e)   
                          {   
                                        e.printStackTrace();   
                            }   
                  }   
  }   
                                                                                      //receiver.java   
    
  import   java.io.*;   
  import   java.util.*;   
  public   class   receiver   extends   Thread   
  {   
                        PipedInputStream   in   =   new   PipedInputStream();   
                      public   PipedInputStream   getIn()   
                        {   
                                      return   in;   
                        }   
                        public   void   run()   
                        {   
                                      byte   []   buf   =   new   byte[1024];   
                                      try   
                                      {   
                                                    int   len   =   in.read(buf);   
                                                  System.out.println("the   following   is   from   sender:\n"+new   String(buf,0,len));   
                                                  in.close();   
                                      }catch(Exception   e)   
                                      {   
                                                  e.printStackTrace();   
                                        }   
                          }   
  }   
    
                                                                                          //TestPiped.java   
    
  import   java.io.*;   
  class   TestPiped   
  {   
                        public   static   void   main(String   []   args)   
                        {   
                                      sender   s   =   new   sender();   
                                    receiver   r   =   new   receiver();   
                                    PipedOutputStream   out   =   s.getOut();   
                                      PipedInputStream   in   =   r.getIn();   
                                    try   
                                    {   
                                                      in.connect(out);   
                                                    s.start();   
                                                    r.start();   
                                      }   
                                    catch(Exception   e)   
                                    {   
                                                  e.printStackTrace();   
                                    }   
                        }   
  }   



   
  这个程序的功能是sender发送"Hello,receiver   !   I`m   sender"给receiver然后receiver接受后显示出来并且在前面加上"the   following   is   from   sender"的信息.要注意的就是PipedInputStream和PipedOutputStream分别用两个线程传送数据.

你可能感兴趣的:(java,thread,正则表达式)