2019.3.6 字节输入输出流

一、JAVA程序如何访问文件属性

   JAVA API:JAVA.IO.FILE类

二、FILE类访问文件属性

  FILE类->创建文件对象的方法->操作文件或目录的属性

三、FILE类的常用方法

  

四、流

  1、流是一组有序的数据序列

  2、以先进先出方式发送信息的通道

五、JAVA流的分类

  1、按流向区分:输出流:outputstream和writer作为基类

          输入流:inputstream和reader作为基类

  2、按照处理数据单元划分:字节流:输入:inputstream基类

                  输出:outputstream基类

              字符流:输入:reader基类

                  输出:writer基类

六、inputstream类常用方法

  1、int read();从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果到了输入流的末尾,返回-1.

  2、int read(byte[] b);从输入流读取若干字节,把这些字节保存到字节数组b中,返回的是读取的字节数,如果到了输入流的末尾,返回-1.

  3、int read(byte[] b,int off,int len);从输入流读取若干字,把这些字节保存到字节数组b中,off指的是字数组中开始保存数据的起始下标,len指的是读取的字节数目。返回的是读取到的字节数,如果到输入流的末尾,返回-1.

  4、void close();关闭流

  5、int available();可以从输入流中读取的字数目

  子类FileInputStream常的构造方法

  1、FileInputStream(File file);文件名

  2、FileInputStream(String name);路径

七、使用FileInputStream读文本文件的步骤:

  1、引入相关的类

  2、构造文件输入流FileInputStream对象

  3、读取文本文件的数据

  4、关闭文件流对象

八、OutputStream类常用方法

  1、int write(int c);

  2、int write(byte[] buf);

  3、int write(byte[] b,int off,int len);

  4、void close();关闭流

  5、void flush();强制把缓冲区的数据写到输出流中

  子类FileoutputStream常的构造方法

  1、FileoutputStream(File file);文件名

  2、FileoutputStream(String name);路径

  3、FileOutputStream(String name,boolean append);可以指定是覆盖或者追加文件内容

作业:将work.txt中的内容复制到workcopy.txt中

package com.java.homework;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * 将work.txt中的内容复制到workcopy.txt中
 * @author Administrator
 *
 */

public class Copy {
	public static void main(String[] args) {
		FileInputStream fis = null;
		FileOutputStream fos = null;
		
		try {
			fis = new FileInputStream("work.txt");
			fos = new FileOutputStream("workcopy.txt");
			int r = -1;
			String s = "";
			//判断是否读取到末尾
			while((r = fis.read())!=-1) {
				//将读取出来的数据再转成char类型 
				s += (char)r;
			}
			//在控制台上输出work.txt中的内容
			System.out.println(s);
			//将从work.txt读取出来的数据放在byte[] b数组中
			byte[] b = s.getBytes();
			//将存在byte[] b数组中的数组输出到workcopy.txt
			fos.write(b, 0, b.length);
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				if(fos!=null) {
					fos.close();
				}
				if(fis!=null) {
					fis.close();
				}
				
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		}
		
	}
}

  结果示例:

  work.txt中的内容

  控制台上的内容:

  复制后workcopy中的内容是:

 

原文地址:https://www.cnblogs.com/chenxj/p/10484452.html