java之IO 总结和笔记

创建一个文件
Java代码

   1. File f=new File("1.txt"); 
   2. f.createNewFile();//创建文件 
   3. f.mkdir();//创建目录 
   4. f.deleteOnExit();//程序结束时自动删除创建的文件 
   5. File.separator 是跨系统文件分隔符

//list方法,列出文件夹下所有的文件和目录名称,如果过滤,传入FilenameFilter,下面是只返回扩展名是java的文件名
Java代码

   1. String[] names=f.list(new FilenameFilter() 
   2.         { 
   3.             public boolean accept(File dir,String name) 
   4.             { 
   5.                 return name.indexOf(".java")!=-1; 
   6.             } 
   7.         }); 

String[] names=f.list(new FilenameFilter()
{
public boolean accept(File dir,String name)
{
return name.indexOf(".java")!=-1;
}
});



输入输出流:
节点流
过滤流
InputStream                OutputStream
FileInputStream            FileOutputStream

BufferedInputStream 带缓冲过滤流
BufferedOutputStream 带缓冲输出过滤流
DataInputStream  提供读写java中基本数据类型的过滤流

PipedInputStream和PipedOutputStream
管道流,用于线程间的通信。
一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。
要使管道流有用,必须同时构造管道输入流和管道输出流。

Java代码

   1. import java.io.*; 
   2. class PipedStreamTest 
   3. { 
   4.     public static void main(String[] args) 
   5.     { 
   6.         PipedOutputStream pos=new PipedOutputStream(); 
   7.         PipedInputStream pis=new PipedInputStream(); 
   8.         try 
   9.         { 
  10.             pos.connect(pis); 
  11.             new Producer(pos).start(); 
  12.             new Consumer(pis).start(); 
  13.         } 
  14.         catch(Exception e) 
  15.         { 
  16.             e.printStackTrace(); 
  17.         } 
  18.          
  19.     } 
  20. } 
  21.  
  22. class Producer extends Thread 
  23. { 
  24.     private PipedOutputStream pos; 
  25.     public Producer(PipedOutputStream pos) 
  26.     { 
  27.         this.pos=pos; 
  28.     } 
  29.     public void run() 
  30.     { 
  31.         try 
  32.         { 
  33.             pos.write("Hello,welcome you!".getBytes()); 
  34.             pos.close(); 
  35.         } 
  36.         catch(Exception e) 
  37.         { 
  38.             e.printStackTrace(); 
  39.         } 
  40.     } 
  41. } 
  42.  
  43. class Consumer extends Thread 
  44. { 
  45.     private PipedInputStream pis; 
  46.     public Consumer(PipedInputStream pis) 
  47.     { 
  48.         this.pis=pis; 
  49.     } 
  50.     public void run() 
  51.     { 
  52.         try 
  53.         { 
  54.             byte[] buf=new byte[100]; 
  55.             int len=pis.read(buf); 
  56.             System.out.println(new String(buf,0,len)); 
  57.             pis.close(); 
  58.         } 
  59.         catch(Exception e) 
  60.         { 
  61.             e.printStackTrace(); 
  62.         } 
  63.     } 
  64. } 

import java.io.*;
class PipedStreamTest
{
public static void main(String[] args)
{
PipedOutputStream pos=new PipedOutputStream();
PipedInputStream pis=new PipedInputStream();
try
{
pos.connect(pis);
new Producer(pos).start();
new Consumer(pis).start();
}
catch(Exception e)
{
e.printStackTrace();
}

}
}

class Producer extends Thread
{
private PipedOutputStream pos;
public Producer(PipedOutputStream pos)
{
this.pos=pos;
}
public void run()
{
try
{
pos.write("Hello,welcome you!".getBytes());
pos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

class Consumer extends Thread
{
private PipedInputStream pis;
public Consumer(PipedInputStream pis)
{
this.pis=pis;
}
public void run()
{
try
{
byte[] buf=new byte[100];
int len=pis.read(buf);
System.out.println(new String(buf,0,len));
pis.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}




Reader和Writer这两个抽象类主要用来读写字符流

InputStreamReader OutputStreamWriter 字节流和字符流的桥梁

FileInputStream fis=new FileInputStream("1.txt");
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
System.out.println(br.readLine());
br.close();

InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String strLine;
while((strLine=br.readLine())!=null)
{
System.out.println(strLine);
}
br.close();

你可能感兴趣的:(java,thread,F#)