IO包

输入、输出

导入:import java.io.*;

作用:操作文件

文件:可以认为是相关记录或存放在一起的数据集合。

文件一般是存放在磁盘上。

File文件类:

流:是用来操作文件的工具类。

java中的流分类:

内容上分类:字节流(一般用来复制文件)stream

                 字符流(一般用来读取文件内容)reader、writer

方向上来分:(参照物 当前工程)

输入流:input

输出流:output

1、FileInputStream类和FileOutputStream类完成文件复制功能

2、FileReader类和FileWrite类,配合BufferedReader类和BufferedWrite类进行读取和写入功能。

3、InputStreamReader类和BufferedReader类完成控制台的输入功能。

4、PrintWriter类的使用方式

5、file.exists();文件是否存在;

     file.isFile();是否是文件;

     file.isDirectory();是否是目录

     file.getName();获取文件的名称

     file.getAbsolutePath();获取绝对路劲;

     file.lastModified();最后修改时间;

     file.length();文件的大小

6、流:是指一连串流动的数据信号,是以先进先出的方式发送和接受数据的通道。

7、字节流是指8位的通用字节流,以字节为基本单位,在java.io包中,对于字节流进行操作的类大部分继承于InputStream(输入字节流)类和OutputStream(输出字节流)类。

8、字符流是指16位Unicode字符流,以字符(两个字节)为基本单位,非常适合处理字符串和文本,对于字符流进行操作的类大部分继承与Reader(读取流)类和Writer(写入流)类。

9、FileInputStream类为文件输入流,继承InputStream类,是进行文件读取操作的最基本类。作用:将文件的数据输入到内存中,尅利用它来读文件。

10、int read(): 读取文件中的数据,一次读取一个字节,读取的数据作为返回值返回,如果读到文件尾则返回-1。

11、int read(byte[] b)读取文件中的数据,将读到的数据存放到byte型数字中,并返回读取的字节的数量,为读到数据返回-1.

public static void main(String[] args){

      try{

            File file = new File("test.txt");

            FileInputStream input = new FileInputStream(file);

            for(int i=0;i<file.length();i++){

                  char ch = (char)(input.read());           //循环读取字符

                  System.out.print(ch);

            }

            input.close();

      }catch(Exception e){

            e.printStackTrace();

      }

}

public static void main(String[] args){

      try{

             File file = new File("test.txt");

             FileInputStream input = new FileInputStream(file);

             byte[] buf = new byte[(int)(file.length())];      //根据文件的字节长度创建字节数组

             input.read(buf);                                            //读取文件中的数据存放到字节数组中

             String str = new String(buf);                         //利用字节数组创建字符串

             System.out.println(str);                                //打印字符串

             input.close();

      }

}

12、对象流

(1)、如果要持久化(序列化)对象,那么这个对象一定要实现Serializeable接口

(2)、序列化的作用:用来持久化对象;

           凡是在网络中能够传递的对象,这个对象必须序列化

(3)、transient 是在序列化对象的时候,可以把某个属性不序列化进去。

 

posted on 2013-01-18 14:01  Tiny339  阅读(337)  评论(0编辑  收藏  举报