java流

 以前总是对流一窍不通,通过这两天的学习算是有点体会了!
    流分为输入流和输出流,而对于输入和输出流根据 “参照物”的不同又分为相对于文件的和相对于程序的,而在java中一般都默认为是对于程序来说的。如果从文件 读取到到内存中,我们称之为输入流;相反,从内存 写到文件中我们称之为输出流。
   而java中的几种流当中,凡是以stream为结尾的流肯定为字节流,而以 ReaderWriter为结尾的肯定为字符流。还有一点, 如果使用数据流或是对象流实现文件的输入和输出操作,则必须先创建文件字节输入输出流,然后再创建数据或字节字节输入输出流。
       下面是一些关于流的经典例子
      import java.io.*;
public class FileCopy {
  public static void main(String[] args) {
   int b = 0;
   FileReader in = null;
   FileWriter out = null;
   try {
     in = new FileReader("d:/share/java/HelloWorld.java");
     out = new FileWriter("d:/share/java/io/HW.java");
     while((b=in.read())!=-1){
       out.write(b);
     }
     out.close();
     in.close(); 
     
   } catch (FileNotFoundException e2) {
     System.out.println("找不到指定文件"); System.exit(-1);
   } catch (IOException e1) {
     System.out.println("文件复制错误"); System.exit(-1);
   }
   System.out.println("文件已复制");
  }
}
----------------------------------------------------------------------------------------------------------------------
import java.io.*;
public class TestBufferStream1 {
  public static void main(String[] args) {
    try {
      FileInputStream fis = 
              new FileInputStream("d:\\share\\java\\HelloWorld.java");
      BufferedInputStream bis = 
              new BufferedInputStream(fis);
      int c = 0;
      System.out.println(bis.read());
      System.out.println(bis.read());
      bis.mark(100);
      for(int i=0;i<=10 && (c=bis.read())!=-1;i++){
        System.out.print((char)c+" ");
      }
      System.out.println(); 
      bis.reset();
      for(int i=0;i<=10 && (c=bis.read())!=-1;i++){
        System.out.print((char)c+" ");
      }
      bis.close();
    } catch (IOException e) {e.printStackTrace();}
  }
}
--------------------------------------------------------------------------------------
import java.io.*;
public class TestBufferStream2 {
  public static void main(String[] args) {
    try {
      BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\share\\java\\dat2.txt"));
      BufferedReader br = new BufferedReader(
             new FileReader("d:\\share\\java\\dat2.txt"));
      String s = null;
      for(int i=1;i<=100;i++){
        s = String.valueOf(Math.random());
        bw.write(s);
        bw.newLine();
      }
      bw.flush();
      while((s=br.readLine())!=null){
        System.out.println(s);
      }
      bw.close(); 
      br.close();
    } catch (IOException e) { e.printStackTrace();}
  }
}
----------------------------------------------------------------------------------------------------
import java.io.*;
public class TestDataStream {
  public static void main(String[] args) {
    ByteArrayOutputStream baos = 
                        new ByteArrayOutputStream(); 
    DataOutputStream dos = 
                        new DataOutputStream(baos);
    try {
      dos.writeDouble(Math.random());
      dos.writeBoolean(true);
      ByteArrayInputStream bais = 
          new ByteArrayInputStream(baos.toByteArray());
      System.out.println(bais.available());
      DataInputStream dis = new DataInputStream(bais);
      System.out.println(dis.readDouble());
      System.out.println(dis.readBoolean());
      dos.close();  dis.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
------------------------------------------------------------------------------------------
import java.io.*;
public class TestFileInputStream {
  public static void main(String[] args) {
    int b = 0;
    FileInputStream in = null;
    try {
      in = new FileInputStream("d:\\share\\java\\io\\TestFileInputStream.java");
    } catch (FileNotFoundException e) {
      System.out.println("找不到指定文件"); 
      System.exit(-1);
    }
    
    try {
      long num = 0;
      while((b=in.read())!=-1){
        System.out.print((char)b); 
        num++;
      }
      in.close();  
      System.out.println();
      System.out.println("共读取了 "+num+" 个字节");
    } catch (IOException e1) {
      System.out.println("文件读取错误"); System.exit(-1);
    }
  }
}
-----------------------------------------------------------------
import java.io.*;
public class TestFileOutputStream {
  public static void main(String[] args) {
   int b = 0;
   FileInputStream in = null;
   FileOutputStream out = null;
   try {
     in = new FileInputStream("d:/share/java/HelloWorld.java");
     out = new FileOutputStream("d:/share/java/io/HW.java");
     while((b=in.read())!=-1){
       out.write(b);
     }
     in.close(); 
     out.close();
   } catch (FileNotFoundException e2) {
     System.out.println("找不到指定文件"); System.exit(-1);
   } catch (IOException e1) {
     System.out.println("文件复制错误"); System.exit(-1);
   }
   System.out.println("文件已复制");
  }
}
--------------------------------------------------------------------------------------------------
import java.io.*;
public class TestFileReader {
  public static void main(String[] args) {
    FileReader fr = null; 
    int c = 0;
    try {
      fr = new FileReader("d:\\share\\java\\io\\TestFileReader.java");
      int ln = 0;
      while ((c = fr.read()) != -1) {
        //char ch = (char) fr.read();
        System.out.print((char)c);
        //if (++ln >= 100) { System.out.println(); ln = 0;}
      }
      fr.close();
    } catch (FileNotFoundException e) {
      System.out.println("找不到指定文件");
    } catch (IOException e) {
      System.out.println("文件读取错误");
    }
  }
}
-------------------------------------------------------------------------------------
package keben;
import java.io.*;
public class TestFileStream {
public static void readFromFile(String source){
try {
FileInputStream fis=new FileInputStream(source);
byte[] buf=new byte[512];    int count;
while((count=fis.read(buf))!=-1)
System.out.println(new String(buf,0,count));
fis.close();

catch (FileNotFoundException e) { e.printStackTrace(); } 
catch (IOException e) { e.printStackTrace(); }
}
public static void writeToFile(String dest){
String str="河南大学计算机与信息工程学院";
try {
FileOutputStream fos=new FileOutputStream(dest,true);
fos.write(str.getBytes());    fos.close();
}
catch (FileNotFoundException e) { e.printStackTrace(); } 
catch (IOException e) { e.printStackTrace(); }
}
public static void main(String[] args) {
String source="d:/1.txt";   String dest="d:/2.txt";
readFromFile(source);    writeToFile(dest);
}
}
=================================================
import java.io.*;
public class TestFileWriter {
  public static void main(String[] args) {
    FileWriter fw = null;
    try {
      fw = new FileWriter("d:\\bak\\unicode.dat");
      for(int c=0;c<=50000;c++){
        fw.write(c);
      }
      fw.close();
    } catch (IOException e1) {
     e1.printStackTrace();
      System.out.println("文件写入错误");
      System.exit(-1);
    }
  }
}
=======================================================
import java.io.*;
public class TestFileWriter2 {
 public static void main(String[] args) throws Exception {
  FileReader fr = new FileReader("d:/java/io/TestFileWriter2.java");
  FileWriter fw = new FileWriter("d:/java/io/TestFileWriter2.bak");
  int b;
  while((b = fr.read()) != -1) {
   fw.write(b);
  }
  fr.close();
  fw.close();
 }
}
----------------------------------------------------------------------------------------
import java.io.*;
public class TestObjectIO {
 public static void main(String args[]) throws Exception {
  T t = new T();
  t.k = 8;
  FileOutputStream fos = new FileOutputStream("d:/share/java/io/testobjectio.dat");
  ObjectOutputStream oos = new ObjectOutputStream(fos);
  oos.writeObject(t);
  oos.flush();
  oos.close();
  
  FileInputStream fis = new FileInputStream("d:/share/java/io/testobjectio.dat");
  ObjectInputStream ois = new ObjectInputStream(fis);
  T tReaded = (T)ois.readObject();
  System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d + " " + tReaded.k);
  
 }
}
class T 
 implements Serializable
{
 int i = 10;
 int j = 9;
 double d = 2.3;
 transient int k = 15;
}
----------------------------------------------------------------------------------------------------
import java.io.*;
public class TestPrintStream1 { 
  public static void main(String[] args) {
    PrintStream ps = null;
    try {
      FileOutputStream fos = 
              new FileOutputStream("d:\\bak\\log.dat");
      ps = new PrintStream(fos);
    } catch (IOException e) {
      e.printStackTrace();
    }
    if(ps != null){
      System.setOut(ps);
    }
    int ln = 0;
    for(char c = 0; c <= 60000; c++){
      System.out.print(c+ " ");
      if(ln++ >=100){ System.out.println(); ln = 0;}
    }
  }
}
--------------------------------------------------------------------------------
import java.io.*;
public class TestPrintStream2 {
  public static void main(String[] args) {
    String filename = args[0];
    if(filename!=null){list(filename,System.out);}
  }
  public static void list(String f,PrintStream fs){
    try {
      BufferedReader br = 
                  new BufferedReader(new FileReader(f));
      String s = null; 
      while((s=br.readLine())!=null){
        fs.println(s);            
      }
      br.close();
    } catch (IOException e) {
      fs.println("无法读取文件");
    }
  }
}
------------------------------------------------------------------
import java.util.*; 
import java.io.*;
public class TestPrintStream3 {
  public static void main(String[] args) {
    String s = null;
    BufferedReader br = new BufferedReader(
                        new InputStreamReader(System.in));
    try {
      FileWriter fw = new FileWriter
                           ("d:\\bak\\logfile.log", true); //Log4J
      PrintWriter log = new PrintWriter(fw);
      while ((s = br.readLine())!=null) {
        if(s.equalsIgnoreCase("exit")) break;
        System.out.println(s.toUpperCase());
        log.println("-----");
        log.println(s.toUpperCase()); 
        log.flush();
      }
      log.println("==="+new Date()+"==="); 
      log.flush();
      log.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
=====================================================
import java.io.*;
public class TestTransForm1 {
  public static void main(String[] args) {
    try {
      OutputStreamWriter osw = new OutputStreamWriter(
           new FileOutputStream("d:\\bak\\char.txt"));
      osw.write("mircosoftibmsunapplehp");
      System.out.println(osw.getEncoding());
      osw.close();
      osw = new OutputStreamWriter(
              new FileOutputStream("d:\\bak\\char.txt", true),
              "ISO8859_1"); // latin-1
      osw.write("mircosoftibmsunapplehp");
      System.out.println(osw.getEncoding());
      osw.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
=====================================================
import java.io.*;
public class TestTransForm2 {
  public static void main(String args[]) {
    InputStreamReader isr = 
            new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    String s = null;
    try {
      s = br.readLine();
      while(s!=null){
        if(s.equalsIgnoreCase("exit")) break;
        System.out.println(s.toUpperCase());
        s = br.readLine();
      }
      br.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
} //阻塞
================================
import java.io.*;
public class TTT {
 public static void main(String[] args) {
  listF(new File("d:/test"), 0);
 }
 
 public static void listF(File f, int level) {
  String preStr = "";
  for(int i=0; i<level; i++) preStr += "    ";
  System.out.println(preStr + f.getName());
  if(f.isDirectory()) {
   File[] files = f.listFiles();
   for(File cf : files) listF(cf, level + 1);
  }
 }
}
具体结果请大家自己运行!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值