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中的内容是:

     

  • 相关阅读:
    CentOS6.3搭建Nginx代理访问MongoDB GridFS图片资源
    PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
    【摘】请问make -j8 和make -j4 是什么意思?什么作用?
    关于数字、数据处理的几个PHP函数汇总
    Windows下Nginx的启动、停止等基本命令
    Git 简明教程
    PHP函数preg_replace() 正则替换所有符合条件的字符串
    如何挂载阿里云Linux服务器的“数据盘”(新购买)
    ThinkPHP模板中JS等带花括号处会被解析错误的解决办法
    移动端与PHP服务端接口通信流程设计(增强版)
  • 原文地址:https://www.cnblogs.com/chenxj/p/10484452.html
Copyright © 2011-2022 走看看