输出方向可分为:输入流和输出流。
读取的单位可分为:字节流和字符流。
节点流:是指输出输入的管道直接和数据源连接。。。。
处理流:是指输出输入管道被其他管道包裹着,不是和数据源直接连接,起缓冲作用的,也就是进行了处理。。。(转换流,数据流,有例子,有代码)
这些知识点不用背,不然绝对会弄混的。。。。。只有多在实际中应用才能记得更牢。。。。
代码摆在这,回头哪天忘了再看看。。。哎
FileInputStream小实例:
package heng.java.IO; import java.io.FileInputStream; import java.io.FileNotFoundException; public class TestFileInputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null; try { in = new FileInputStream("e:\\Order\\TCPTwoTalkClient.java"); long num = 0; while((b=in.read()) != -1){ System.out.print((char)b); num++; } in.close(); System.out.println("共读取了"+num+"个字节"); } catch (Exception e) { System.out.println("找不到指定文件"); System.exit(-1);//非正常退出程序 } } }
FileOutputStream小实例:
package heng.java.IO; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class TestFileOutputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("e:\\Order\\TCPTwoTalkClient.java"); out = new FileOutputStream("e:\\Order\\TCPTwoTalkClient副本.java"); while((b=in.read()) != -1){ out.write(b); } in.close(); out.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("文件已复制"); } }
FileReader小实例:
package heng.java.IO1; import java.io.FileNotFoundException; import java.io.FileReader; /** * 字符流,可以打印出字符 * @author Administrator * */ public class TestFileReader { public static void main(String[] args) { FileReader fr = null; int c = 0; try { fr = new FileReader("e:\\Order\\TCPTwoTalkClient.java"); int len = 0; while((c = fr.read()) != -1){ System.out.print((char)c); } fr.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
FileWriter小实例:
package heng.java.IO1; import java.io.FileReader; import java.io.FileWriter; public class TestFileWriter { public static void main(String[] args) { FileWriter fw = null; FileReader fr = null; int c = 0; try { fr = new FileReader("e:\\Order\\TCPTwoTalkClient.java"); fw = new FileWriter("e:\\Order\\TCPTwoTalkClient副本2.java"); while((c = fr.read()) != -1){ fw.write(c); } fr.close(); fw.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("文件复制成功"); } }
BufferedInputStreamStream小实例:
package heng.java.IO2; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; public class TestBufferStream { public static void main(String[] args) { FileInputStream fis = null; BufferedInputStream bis = null; try { fis = new FileInputStream("e:\\Order\\TCPTwoTalkClient.java"); bis = new BufferedInputStream(fis); int c = 0; System.out.println(bis.read()); System.out.println(bis.read()); bis.mark(100);//做标记,从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 (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
BufferedWriter和BufferedReader小实例:
package heng.java.IO2; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; public class TestBufferStream1 { public static void main(String[] args) { BufferedWriter bw = null; BufferedReader br = null; try { bw = new BufferedWriter(new FileWriter("e:\\Order\\TCPTwoTalkClient副本3_1.java")); br = new BufferedReader(new FileReader("e:\\Order\\TCPTwoTalkClient副本3_1.java")); 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 (Exception e) { e.printStackTrace(); } } }