2015_1_27_IO1

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

日期: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包中,打印流是输出信息最方便的类。

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();

        }

 

    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值