zoukankan      html  css  js  c++  java
  • 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中的内容是:

     

  • 相关阅读:
    递归运用实例
    动手动脑(&课后实验):生成随机数,函数的重载
    求一个数字的每位上的数字并求和
    要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
    Java语言基础问题
    从命令行接收多个数字,求和输出结果
    《大道至简》第一章读后感Java伪代码
    《大道至简》读后感
    怎样关闭WIN7系统的自动更新
    Mongodb集群搭建的三种方式
  • 原文地址:https://www.cnblogs.com/chenxj/p/10484452.html
Copyright © 2011-2022 走看看