java的IO总结(一)
Java的IO流是实现输入输出的基础,这里所说的流就是数据流,大部分的与流相关的类放在Java.io包下。
一,Java的流分类
按照不同的分类方式可以把流分成不同的类型,下面我们从不同的角度对流进行分类。
1,按照流的方向可以分为输入流与输出流
输入流:只能从中读取数据,而不能向其写出数据
输出流:只能向其写出数据,而不能从中读数据。 2,字节流与字符流
字节流主要是以InputStream和OutputStream为基类,其对应子类有FileInputStream和FileOutputStream实现文件读写,BufferedInputStream和BufferedOutputStream提供缓冲区功能,操作的最小单位数据是8位的字节。字符流主要是以Reader和Writer为基类,其对应子类FileWriter和FileReader可实现文件的读写操作,BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率,操作的最小的单位数据是16位的字符。
3,节点流与处理流
节点流:可以从/向一个特定的IO设备中读/写数据流。程序直接和数据源(物理节点)相连接。
处理流:对节点流进行包装,他可以隐藏底层设备之间的差异,对外提供了更好的输入/输出方法。
字符流
实例1:字符流的写入
public class FileInputStreamTest {
    public static void main(String[] args)  throws IOException
    {
        FileWriter fw = null;
        try
        {
            fw = new FileWriter("D:\\javaPro\\ioJava\\xin.txt");
            fw.write("你说的话,我都不听\r\n");
            fw.write("让着故事延长\r\n");
        }  catch(IOException e)
        {
            e.printStackTrace();
        }  finally
        {
            if(fw!=null)
            {
                fw.close();
            }
        }
    }
}
实例2:字符流的读取
public class ReadStreamTest {
    public static void main(String[] args) throws  IOException
    {
        FileReader fr= null;
        try
        {
            fr = new FileReader("D:\\javaPro\\ioJava\\ha.txt");
            char[] ch = new char[1024];
            int num;
            while ((num = fr.read(ch))!= -1)
            {
                System.out.println(new String(ch,0,num));
            }
        }   catch (IOException e)
        {
              e.printStackTrace();
        }  finally {
            if(fr!=null)
            {
                fr.close();
            }
        }
    }
}
实例3:字节流的写入
public class OutPutTest {
    public static void main(String[] args) throws IOException
    {
        FileInputStream fi = null;
        FileOutputStream fo = null;
        try
        {
             fi = new FileInputStream("D:\\javaPro\\ioJava\\ha.txt");
            fo= new FileOutputStream("D:\\javaPro\\ioJava\\xin.txt");
            byte[] by = new byte[1024];
            int num;
            while((num = fi.read(by))!=-1)
            {
                  fo.write(by,0,num);
            }
        }  catch(IOException e)
        {
              e.printStackTrace();
        } finally
        {
            if(fi!=null)
            {
                fi.close();
            }
            if(fo!=null)
            {
               fo.close();
            }
        }
    }
}
实例4:字节流的读取
public class Test {
    public static void main(String[] args) throws IOException
    {
        String str = "D:\\javaPro\\ioJava\\ha.txt";
        FileInputStream f;
        f = new FileInputStream(str);
        byte[] temp1 = new byte[1024];
        int num;
        while ((num = f.read(temp1))>0)
        {
            System.out.println(num);
            System.out.println(temp1);
            System.out.println(new String(temp1,0,num));
        }
        f.close();;
    }
}
以上使用的都是节点流的例子,下面来看一个处理流的例子
实例5:处理流
public class FileInputStreamTest {
    public static void main(String[] args)  throws IOException
    {
         PrintStream ps = null;
        try
        {
            //  创建一个节点流
            FileOutputStream fs = new FileOutputStream("D:\\javaPro\\ioJava\\xin.txt");
            //   用 PrintStream来包装 FileOutputStream输出流
            ps = new PrintStream(fs);
            //  使用  PrintStream来执行输出
            ps.println("普通字符");
            //  直接使用 PrintStream输出对象
            ps.println(new FileInputStreamTest());
        }  catch(IOException e)
        {
            e.printStackTrace();
        }  finally
        {
            if(ps!=null)
            {
                ps.close();
            }
        }
    }
}
从上面可以看出来程序使用处理流非常简单,只需要在创建处理流时传入一个节点流作为构造函数的参数,这样创建的处理流就是包含了节点流的处理流。。。
java的IO总结(一)的更多相关文章
- java的IO流
		java的IO流继承四大抽象类分别是字节流 inputStream outputStream与字符流 read write.怎么理解记忆很重要. 直接连接读写对象的是结点流,例如对文件读取字节类的名字 ... 
- java之io之File类的list()方法过滤目录的使用
		java的io的知识中,File类必须掌握.File类是对文件或者文件夹的封装.它本身并不能对所封装的文件进行读写,它封装的只是文件或文件夹的周边知识,比如 大小啦,创建日期啦,路径啦等等. 如果Fi ... 
- Java 新IO
		NIO提供全新的底层I/O模型.与最初的java.io包中面向流(stream-oriented)概念不同,NIO采用了面向块的概念(block-oriented).在尽可能的情况下,I/O的操 ... 
- JAVA中IO总结
		JAVA中IO流主要分为两大类: 字节流:InputStream+OutputStream 字符流:Reader+Writer 字节流: InputStream是所有字节输入流的父类 OutputSt ... 
- Java基础——IO流
		今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ... 
- 【Java】IO流简单分辨
		转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的IO流体系十分庞大,并且体系层次稍复杂,很容易记混或记错.在此,我把平时经常用 ... 
- JAVA中IO技术:BIO、NIO、AIO
		1.同步异步.阻塞非阻塞概念 同步和异步是针对应用程序和内核的交互而言的. 阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作 ... 
- Java - 文件(IO流)
		Java - 文件 (IO) 流的分类: > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter ... 
- JAVA的IO运用
		IO OF JAVA想写好一篇关于JAVA的IO的文章不容易,因为它涉及的东西很多难以写得有深度和有思路.我虽不才但也写.这篇文章有我个人不少的见解,虽然涉足计算机不深但我不想用一大堆这个可能那个可能 ... 
- JAVA的IO学习
		IO 有具体的分类: 有具体的分类:1:根据处理的数类型不同:字节流和字符流.2:根据流向不同:输入流和输出流. =============(补充字节跟字符概念区分)================= ... 
随机推荐
- Windows下创建文件的权限问题
			在Windows下如果在某个目录下建立一个文件,那么新建立的文件会默认继承该目录的所有权限(父子关系) 如果将一个文件从一个目录移动到到另一个目录下,那么该文件的权限并不会继承自新目录的权限而是还保留 ... 
- 项目加入 TFS报错
			新建一个项目,然后在解决方案上右击,选择Add solution to source control的时候,总是失败,output窗口中出现的错误信息如下: An error was raised ... 
- spring源代码系列(一)sring源代码编译 spring源代码下载 spring源代码阅读
			想对spring框架进行深入的学习一下,看看源码,提升和沉淀下自己,工欲善其事必先利其器,还是先搭建好开发环境吧. 环境搭建 sping源代码之前是svn管理,如今已经迁移到了github中了.新版本 ... 
- 浅析Android线程模型一 --- 转
			摘要:随着中国移动在8月份相继发布基于Google Android的OPhone平台和手机网上应用商店Mobile Market,以及各大手机生产厂商在2009年北京国际通信展?上展出了各自基于And ... 
- STL - 容器 - 运行期指定排序准则
			RuntimeCmp.hpp #include <set> using namespace std; // type for runtime sorting criterion class ... 
- ZH奶酪:在博客中添加Latex公式
			1. 点击编辑器中的插入图片: 2.在URL输入下边的地址: http://latex.codecogs.com/gif.latex?你的latex代码 就可以了- 
- Nginx启用ssl以及免费证书申请
			主要是这个东西,折腾了我两天,所以记录下来. 最开始是在meteor下面调用一个webservice,但是发现meteor项目的发布环境时https,所以请求的webservice也必须时webser ... 
- whereis 命令(转)
			原文:http://www.cnblogs.com/peida/archive/2012/11/09/2761928.html whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b) ... 
- 解决运行Maven是报错:No goals have been specified for this build
			pom.xml文件<build>标签后面加上<defaultGoal>compile</defaultGoal>即可 
- MVC日期和其它字符串格式化
			-- (月份位置不是03) string.Format("{0:D}",System.DateTime.Now) 结果为:2009年3月20日 : :: -- : -- :: st ... 
