I/O流

package com.java.exp14;

/**
 * 1、流概述
 *  程序从指向源的输入流中读取数据
 *  输出流的指向是数据要到达的目的地
 * 2、输入、输出流
 *  包括字符输入流InputStream和字节输入流Reader
 *     字符输出流OutputStream和字节输出流Writer
 *  2.1、输入流
 *      read():从输入流中读取数据的下一个字节
 *      read(byte[] b):从输入流中读取一定长度的字节,并以整数的形式返回字节数
 *      mark(int readlimit):在输入流的当前位置做一个标记,参数为标记失效之前允许读取的字节数
 *      reset():将输入指针返回到当前所做的标记处
 *      skip(long n):跳过输入流上的n个字节并返回实际跳过的字节数
 *      markSuppeorted():如果当前流支持mark()/reset()方法就返回true
 *      close():关闭流并释放所有与该流相关的所有系统数据
 *  2.2、输出流
 *      write(int b):将指定的字节写入次输出流
 *      write(byte[] b):将b个字节从指定的byte数组写入次输入流
 *      write(byte[] b,int off,int len):将byte数组中从偏移量off开始的len个字节写入输出流
 *      flush():彻底完成输出并清空缓存区
 *      close():关闭输出流
 * 3、File类
 *  3.1、文件的创建和删除
 *      File file = new File(String pathname);
 *      File file = new File(String parent,String child);
 *      windows平台,如果路径名是据对路径,还可能后跟"\\";
 *  3.2、获取文件信息
 *      getName():获取文件名称
 *      getParent():获取文件的父路径
 *      getAbsolutePath():获取文件的绝对路径
 *      isDirectory():判断文件是否是一个目录
 *      exits()、isFile():判断文件是否存在
 * 4、文件输入/输出流
 *  4.1、FileInputStream与FileOutputStream类       字节层面上操作
 *      虽然Java在程序结束时自动关闭所有打开的流,但是一个优秀的程序员应该在用完之后及时关闭,
 *      否则会造成资源浪费,甚至会造成另一个流得不到需要的资源
 *  4.2、FileReader和FileWriter类                  字符层面上操作
 * 5、带缓存的输入/输出流
 *  缓存是I/O的一种性能优化。缓存流为I/O流增加了内存缓存去
 *  5.1、BufferedInputStream和BufferedOutputStream类       字节缓存
 *      flush()方法就是用于及时在缓存区没有满的情况下,也将缓存区的内容起那孩子写入到外设,习惯上成这个过程为刷新。
 *      flush()方法值对使用缓存区的OutputStream类的子类有效,当调用close()方法时,系统在关闭流之前,
 *      系统也会将缓存区中的信息刷新到磁盘文件中    
 *  5.2、BufferedReader和BufferedWriter类      以行为为单位进行输入/输出
 *      read():读取单个字符
 *      readLine():读取一个文本行,并返回一个字符串;若无数据可读,则返回null
 *      write(String s,int off,int len):写入字符串的某一部分
 *      flush():刷新该流的缓存
 *      newLine():写入一个行分隔符
 *      在使用BufferWriter类的write()方法时,数据并没有立刻被写入至输出流,而是首先进入缓存区
 *      如果想立刻将缓存区汇总的数据写入输出流,一定要调用flush()方法
 * 6、数据输入/输出流 DataOutputStream和DataInputStream
 * 7、ZIP压缩输入/输出流
 *  7.1、压缩文件
 *      ZIPOutputStream(OutputStream out);
 *  7.2、解压缩ZIP文件
 *      ZIPInputStream(InputStream in);
 * */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;


public class Demo {
    public static void main(String[] args) {

        //创建文件,简单的获取文件信息
        /*
            File file = new File("word.txt");

            if(file.exists()){
            String name = file.getName();
            long length = file.length();        //获取文件的长度
            boolean hidden = file.isHidden();   //判断文件是否隐藏
            System.out.println("文件名称:"+name);
            System.out.println("文件的长度:"+length);
            System.out.println("文件是否隐藏:"+hidden);
            file.delete();
            System.out.println("File is deleted");
        }else{
            try {
                file.createNewFile();
                System.out.println("File is created");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }*/


        //FileInputStream与FileOutputStream类
        /*File file = new File("word.txt");
        try {
            //创建FileOutputStream对象
            FileOutputStream fos = new FileOutputStream(file);
            //创建byte数组
            byte b[] = "我有一头小毛驴,我从来也不骑。".getBytes();
            fos.write(b);   //将数组中的信息写入 到文件中
            fos.close();    //将流关闭
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            //创建FileInputStream对象
            FileInputStream fis = new FileInputStream(file);
            byte b2[] = new byte[1024];     //创建byte数组
            int len = fis.read(b2);         //从文件中读取信息
            //将文件中的信息输出
            System.out.println("文件中的信息是:"+new String(b2,0,len));
            fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }*/


        //FileReader和FileWriter类
        File file = new File("word.txt");
        try {
            //创建Filewriter对象
            FileWriter fw = new FileWriter(file);
            //获取文本域中的内容
            String s = "我有一头小毛驴,我从来也不骑。";
            fw.write(s);
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            //创建FileReader对象
            FileReader fd = new FileReader(file);
            char b3[] = new char[1024];
            int len = fd.read(b3);
            System.out.println(new String(b3,0,len));
            fd.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Example类

package com.java.exp14;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Example {
    public static void main(String[] args) {
        try {
            //创建FileOutputStream对象
            FileOutputStream fos = new FileOutputStream("word.txt");
            //创建DataOutputStream对象
            DataOutputStream dos = new DataOutputStream(fos);
            dos.writeUTF("wirteUFT");
            dos.writeChars("writeChars");
            dos.writeBytes("writeBytes");
            dos.close();
            //创建FileInputStream对象
            FileInputStream fis = new FileInputStream("word.txt");
            //创建DataInputStream对象
            DataInputStream dis = new DataInputStream(fis);
            System.out.println(dis.readUTF());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

MyZIP类

package com.java.exp14;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class MyZIP {
    private void zip(String zipFileName,File inputFile) throws Exception{
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFileName));
        zip(zos, inputFile,"");
        System.out.println("压缩中...");
        zos.close();
    }

    private void zip(ZipOutputStream zos, File f, String base) throws IOException {
        if(f.isDirectory()){
            File[] fl = f.listFiles();
            zos.putNextEntry(new ZipEntry(base+"/"));
            base = base.length() == 0?"":base+"/";
            for(int i = 0; i<fl.length;i++){
                zip(zos, fl[i], base+fl[i]);
            }
        }else{
            zos.putNextEntry(new ZipEntry(base));
            FileInputStream fis = new FileInputStream(f);
            int b;
            System.out.println(base);
            while((b=fis.read())!=-1){
                zos.write(b);
            }
            fis.close();
        }

    }
    public static void main(String[] args) {
        MyZIP book = new MyZIP();
        try {
            book.zip("D:/hello.zip", new File("D:/hello"));
            System.out.println("压缩完成");
        } catch (Exception e) {
        }
    }
}

Student类

package com.java.exp14;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class Student {
    public static void main(String[] args) {
        String content[] = {"好久不见","最近好吗","常联系"};
        File file = new File("word.txt");
        try {
            FileWriter fw= new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            for(int k = 0 ;k<content.length;k++){
                bw.write(content[k]);
                bw.newLine();
            }
            bw.close();
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            String s= null;
            int i = 0;
            while((s=br.readLine())!=null){
                i++;
                System.out.println("第"+i+"行:"+s);
            }
            br.close();
            fr.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值