黑马程序员_IO流整理

发布时间:2016-12-10 14:52:09 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"黑马程序员_IO流整理",主要涉及到黑马程序员_IO流整理方面的内容,对于黑马程序员_IO流整理感兴趣的同学可以参考一下。

------- android培训、java培训、期待与您交流! ---------- 一、流的基本概念 流就是字节序列的抽象概念,流机制是java中的一个重要机制,通过流能够自由的控制文件、内存、IO设备等的数据流向,IO流就是用于处理设备上的数据,如硬盘、内存、键盘等。 二、IO流的分类 按照流的方向可以分为输入流和输出流; 按照处理数据类型的不同可以分为字符流和字节流。 按照流的功能不同可以分为节点流和处理流。 三、字符流 1、Reader类 Reader类是一个抽象类,主要用于文件的读操作,在继承它的子类中,常用的是InputStreamReader类,而它的子类中,最常用的是FileReader,主要用于处理文件流的读取。 Reader类常用的方法有read()方法,该方法返回的是一个int类型的整数,如果读到了流的末尾,则返回-1。 2、Writer类 Writer类也是一个抽象类,OutputStreamWriter是它的一个子类,FileWriter继承了OutputStreamWriter类,主要用于流的输出。 Writer类常用的方法有: write(int c)  //向输出流写一个字符; write(String str) //向输出流写一个字符串; write(String str,int offset,int length) //将一个字符串从offset开始的length个长度的字符写到输出流; flush() //将缓冲流里的数据全部写到输出流中; 下面是一个有关FileReader使用的小程序: import java.io.*; public class TestFileReader { public static void main(String[] args) { FileReader fr = null; int c = 0; try { fr = new FileReader("d:\\java\\io\\TestFileReader.java"); int ln = 0; while ((c = fr.read()) != -1) { System.out.print((char)c); } fr.close(); } catch (FileNotFoundException e) { System.out.println("找不到指定文件"); } catch (IOException e) { System.out.println("文件读取错误"); } } } 有关FileWriter使用的程序:  import java.io.*; public class TestFileWriter { public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("d:\\bak\\unicode.txt"); for(int c=0;c<=50000;c++){ fw.write(c); } fw.close(); } catch (IOException e1) { e1.printStackTrace(); System.out.println("文件写入错误"); System.exit(-1); } } } 四、字节流 1、InputStream类 InputStream类是以字节为单位读取数据的,常用的方法有: int read() //读取一个字节以整数形式返回,读到末尾返回-1; long skip(long n) //跳过n个字节不读; 2、OutputStream类 OutputStream类是以字节为单位向外写数据的,常用的方法: void write(int b) //向输出流写一个字节; void flush() //将缓冲流里的数据全部写到目的地; 下面是一个有关FileInputStream类使用的例子 import java.io.*; public class TestFileInputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null; try { in = new FileInputStream("d:\\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); } } } 有关fileOutputStream使用的例子程序: 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:/java/HelloWorld.java"); out = new FileOutputStream("d:/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("文件已复制"); } } 五、缓冲流 缓冲流套接在相应的节点流之上,提高了读写的效率。 常用的缓冲流对象: BufferedReader:提供了readLine()方法可以高效的读取一行字符串; BufferedWriter:提供了一个newLine()方法可以写写入一个行分隔符; 下面是对应的实例程序: import java.io.*; public class TestBufferStream2 { public static void main(String[] args) { try { BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\java\\dat2.txt")); BufferedReader br = new BufferedReader( new FileReader("d:\\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();} } } 六、Print流 Print流只有输出流没有输入流,PrintWriter和PrintStream分别对应字符流和字节流,并且两个类的输出不会产生异常,且具有自动的flush()功能。实例代码如下: import java.io.*; public class TestPrintStream1 { public static void main(String[] args) { PrintStream ps = null; try { FileOutputStream fos = new FileOutputStream("d:\\java\\log.txt"); 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;} } } }

上一篇:线程池技术个人理解以及c语言的简单实现
下一篇:loadrunner&nbsp;参数化,用户登录

相关文章

相关评论