学习《java程序设计》第十章学习总结

10章 输入、输出流

 

File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。

创建一个File对象的构造方法有3个:

  • File(String filename);
  • File(String directoryPath,String filename);
  • File(File f, String filename);

File类的下列方法获取文件本身的一些信息。

  • public String getName() 获取文件的名字。
  • public boolean canRead() 判断文件是否是可读的。
  • public boolean canWrite() 判断文件是否可被写入。
  • public boolean exits() 判断文件是否存在。
  • public long length() 获取文件的长度(单位是字节)。
  • public String getAbsolutePath() 获取文件的绝对路径。
  • public String getParent() 获取文件的父目录。
  • public boolean isFile() 判断文件是否是一个普通文件,而不是目录。
  • public boolean isDirectroy() 判断文件是否是一个目录。
  • public boolean isHidden() 判断文件是否是隐藏文件。
  • public long lastModified() 获取文件最后修改的时间。

 

1.创建目录 public boolean mkdir()

2.列出目录中的文件

  • public String[] list() 用字符串形式返回目录下的全部文件。
  • public File [] listFiles() 用File对象形式返回目录下的全部文件。
  • public String[] list(FilenameFilter obj) 用字符串形式返回目录下的指定类型的所有文件。
  • public File [] listFiles(FilenameFilter obj) 用File对象形式返回目录下的指定类型所有文件。

用Runtime 类声明一个对象( Runtime类在java.lang包)

Runtime ec;

然后使用该类的getRuntime()静态方法创建这个对象:

ec=Runtime.getRuntime();

ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。

10.2 文件字节输入流

  • InputStream抽象类的子类创建的流对象称作字节输入流
  • OutputStream抽象类的子类创建的流对象称作字节输出流
  • Reader抽象类的子类创建的流对象称作字符输入流
  • Writer抽象类的子类创建的流对象称作字符输出流

使用输入流通常包括4个基本步骤:

  •   (1)设定输入流的源
  •   (2)创建指向源的输入流
  •   (3)让输入流读取源中的数据
  •   (4)关闭输入流。

构造方法:设定输入流源

  •        FileInputStream(String name);
  •        FileInputStream(File file);
  • int read() 读取单个字节的数据,返回字节值(0~255整数),如果未读出字节就返回-1。
  • int read(byte b[]) 读取b.length个字节到字节数组b中,返回实际读取的字节数。如果到达文件的末尾,则返回-1。
  • int read(byte b[], int off, int len) 读取len个字节到字节数组b中,并返回实际读取的字节数目。如果到达文件的末尾,则返回-1,参数off指定从字节数组的某个位置开始存放读取的数据。

10.3  文件字节输出流

使用输出流通常包括4个基本步骤:

  • 给出输出流的目的地
  • 创建指向目的地的输出流
  • 让输出流把数据写入到目的地
  •  关闭输出流

构造方法FileOutputStream

  • FileOutputStream(String name)
  • FileOutputStream(File file)

使用输出流写字节

  •    void write(int n) 向目的地写入单个字节
  •    void write(byte b[]) 向目的地写入一个字节数组
  •    void write(byte b[],int off,int len) 从字节数组中偏移量off处取len个字节写到目的地

10.4 文件字符输入、输出流

Reader类提供的read方法以字符为单位顺序地读取源中的数据。

  • int read():
  • int read(char b[]):
  •  int read(char b[], int off, int len):
  •  void close():
  •  long skip(long numBytes):

Writer流以字符为单位顺序地写文件,每次调用write方法就顺序地向目的地写入内容。 Writer类有如下常用的方法。

  • void write(int n):  向输出流写入一个字符。
  • void write(byte b[]):  向输出流写入一个字符数组。
  • void write(byte b[],int off,int length):  从给定字符数组中起始于偏移量off处取len个字符写到输出流。
  • void close():  关闭输出流。

10.5     缓冲流

BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流

构造方法:

  • BufferedReader(Reader in);
  • BufferedWriter (Writer out);

 

BufferedReader和BufferedWriter类读写文件的方法:

  • readLine() 读取文本行
  • write(String s,int off,int len) 把字符串s写到文件中
  • newLine(); 向文件写入一个回行符

10.6  随机流

使用RandomAccessFile类来创建一个随机访问文件流

构造方法:

  • RandomAccessFile(String name,String mode) 
  • RandomAccessFile(File file,String mode) 

相关方法:

  • seek(long a)  定位RandomAccessFile流的读写位置
  • getFilePointer() 获取流的当前读写位置 

10.7    数组流

字节数组输入流ByteArrayInputStream和字节数组输出流ByteArrayOutputStream分别使用字节数组作为流的源和目标。

ByteArrayInputStream构造方法及常用方法

  • –  ByteArrayInputStream(byte[] buf);
  • –  ByteArrayInputStream(byte[] buf,int offset,int length);
  •   public int read();顺序地从源中读出一个字节
  •   public int read(byte[] b,int off,int len);顺序地从源中读出参数len指定的字节数

ByteArrayOutputStream流构造方法及常用方法

  • –  ByteArrayOutputStream();
  • –  ByteArrayOutputStream(int size);
  •   public void write(int b); 顺序地向缓冲区写入一个字节  
  •   public void write(byte[] b,int off,int len); 将参数b中指定的len个字节顺序地写入缓冲区
  •   public byte[] toByteArray(); 返回输出流写入到缓冲区的全部字节

10.8   数据流

DataInputStream和DataOutputStream类创建的对象称为数据输入流和数据输出流。

构造方法:

  • –   DataInputStream(InputStream in)创建的数据输入流指向一个由参数in指定的底层输入流
  • –   DataOutputStream(OutnputStream out)创建的数据输出流指向一个由参数out指定的底层输出流

10.9   对象流

ObjectInputStream和ObjectOutputStream类创建的对象称为对象输入流和对象输出流。

构造方法是:

  • –    ObjectInputStream(InputStream in)
  • –   ObjectOutputStream(OutputStream out)

相关方法:

  • –     writeObject(Object obj) 将一个对象obj写入到一个文件
  • –    readObject() 读取一个对象到程序中 

10.12 文件对话框

构造方法JFileChooser()创建初始不可见的有模式的文件对话框。然后文件对话框调用下述2个方法:

  • –  showSaveDialog(Component a);
  • –  showOpenDialog(Component a);

总结

  1. File类及各种方法的使用。
  2. InputStream的子类创建的对象称为字节输入流,字节输入流按字节读取源”的数据。
  3. OutputStream的子类创建的对象称为字节输出流。字节输出流按字节将数据写入输出流指向的目的地。
  4. Reader的子类创建的对象称为字符输入流,字符输入流按字符读取源中的数据。
  5. Writer的子类创建的对象称为字符输出流。字符输出流按字符将数据写入输出流指向的目的地。
  6. 使用对象流写入或读入对象时,要保证对象是序列化的。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值