码迷,mamicode.com
首页 > 其他好文 > 详细

2015_1_27_IO1

时间:2015-01-28 21:28:03      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

**************************************************************************************************************************************************************

日期:2015年1月 27日

主题:IO

相关文件夹:oracle/相关课件/第10章_IO.pptx

使用软件:Eclipse

**************************************************************************************************************************************************************

上午

**************************************************************************************************************************************************************

一、File类

1.      相关API:

访问文件名:

? getName()

?  getPath()

?  getAbsoluteFile()

?  getAbsolutePath()

?  getParent()

? renameTo(FilenewName)

文件检测

?  exists()

?  canWrite()

?  canRead()

?  isFile()

?  isDirectory()

获取常规文件信息

?  lastModified()

?  length()

文件操作相关

?  createNewFile()

?  delete()

目录操作相关

?  mkDir()

?  mkDirs()

?  list()

?  listFiles()

 

二、Java IO原理

1.  进入内存的叫输入流

         出内存的叫输出流

(抽象基类)

字节流

字符流

输入流

InputStream

Reader

输出流

OutputStream

Writer

2.      IO流体系

   按操作数据单位不同分为:字节流(8 bit),字符流(16 bit) 

 按数据流的流向不同分为:输入流,输出流

 按流的角色的不同分为:节点流,处理流

        技术分享

3.    像文件这种需要关闭流的类,抛出的异常需要在本地解决,即在finally中写close(),否则流将无法关闭。Finallly中的close()也同样需要抛出异常。

4.   IO原理及流的分类

 文件流

FileInputStream  / FileOutputStream  /  FileReader /  FileWriter

缓冲流

BufferedInputStream / BufferedOutputStream /

BufferedReader / BufferedWriter

转换流

InputStreamReader  / OutputStreamWriter

标准输入/输出流

打印流(了解)

PrintStream /  PrintWriter

 数据流(了解)

DataInputStream  / DataOutputStream

对象流   ----涉及序列化、反序列化

ObjectInputStream  / ObjectOutputStream

 随机存取文件流

                   RandomAccessFile

5. java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。

三、InputStream & Reader  OutputStream & Writer

InputStream 和 Reader 是所有输入流的基类。OutputStream 和Writer 也非常相似。

四、缓冲流

为了提高数据读写的速度,JavaAPI提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组

根据数据操作单位可以把缓冲流分为:

BufferedInputStream和BufferedOutputStream

BufferedReader和BufferedWriter

l  缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法

l  对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush()将会使内存中的数据立刻写出

五、转换流

转换流提供了在字节流和字符流之间的转换

Java API提供了两个转换流:

InputStreamReader和OutputStreamWriter

字节流中的数据都是字符时,转成字符流操作更高效

**************************************************************************************************************************************************************

下午

**************************************************************************************************************************************************************

一、标准输入输出流

l     System.in和System.out分别代表了系统标准的输入和输出设备

l  默认输入设备是键盘,输出设备是显示器

l  System.in的类型是InputStream

l  System.out的类型是PrintStream,其是OutputStream的子类FilterOutputStream 的子类

l  通过System类的setIn,setOut方法对默认设备进行改变。

?  public static void setIn(InputStreamin)

?  public static void setOut(PrintStreamout)

例:   

    /**

     * PrintStream

     * @throws IOException

     */

    @Test

    public void test3() throws IOException{

        InputStreamReaderisr= newInputStreamReader(System.in);

        BufferedReaderbr =new BufferedReader(isr);

        Stringstr="";

        while((str=br.readLine())!=null){

            if(str.equalsIgnoreCase("e")){

                break;

            }

            System.out.println(str);

        }

    }

二、打印流

l  在整个IO包中,打印流是输出信息最方便的类。

l  PrintStream(字节打印流)和PrintWriter(字符打印流)

?  提供了一系列重载的print和println方法,用于多种数据类型的输出

?  PrintStream和PrintWriter的输出不会抛出异常

?  PrintStream和PrintWriter有自动flush功能

?  System.out返回的是PrintStream的实例

例:/**

     * PrintStream

     */

    @Test

    public void test4() {

        PrintStreamps = null;

        try {

            ps = new PrintStream(new File("hello.txt"));

            ps.append("sadfasg");

            ps.append("sadfasg");

            ps.append("sadfasg");

            ps.print("asdfg");

        }catch(IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }finally{

            ps.close();

        }

 

    }




2015_1_27_IO1

标签:

原文地址:http://blog.csdn.net/zydirtyfish/article/details/43237159

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!