当前位置: 首页 > news >正文

实验05博客园总结

什么是流:

一连串有顺序的数据系列可以看成是一个流,java将文件看成流

Java通过流对象存取文件

流的分类:

1.输入流和输出流:数据“流入”程序的称为“输入”。

2.字节流和字符流:指存取数据的最小单位。

3.节点流(Node Stream)和处理流(Processing Stream):节点流直接连接到数据源,处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强的数据读写功能,它并不直接连到数据源。

流的基类:

1.字节流的两个基类InputStream和OutputStream:以字节为单位,是所有字节输入与输出流的父类;

2.字符流的两个基类Reader和Writer:以字符(2个字节)为单位。

1、编写一个程序,指定一个文件夹,能自动计算出其总容量

package 课堂实验05;

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;
public class filecount {
    static long size=0;
    private static ArrayList<String> filelist=new ArrayList<String>();
    private static filecount s;
    private static Scanner scan;
    public static void main(String[] args) {
        s = new filecount();
        System.out.println("请输入一个文件夹\n");
        scan = new Scanner(System.in);
        String filePath = scan.nextLine();
        filecount.getFiles(filePath);
        System.out.println("文件夹总容量为:"+size); 
    }
    static void getFiles(String filePath) {
        int i = 0;
        int sum = 0;
        File f=new File(filePath);
        File[] fs=f.listFiles();
        for(File file:fs) {
            if(file.isDirectory()) {
                getFiles(file.getAbsolutePath());
                filelist.add(file.getAbsolutePath()); 
            } else {
                System.out.println(fs[i].getAbsolutePath());
                sum = file.getAbsolutePath().length();
                size += file.getAbsolutePath().length();
                System.out.println("本文件大小为"+sum);
                i++;
            }
            
        }
        
    }
}

结果截图如图:

2、编写一个文件加解密程序,通过命令行完成加解密工作

package 课堂实验05;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class eencryption {
    public static void encryption() throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D://TTT1.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D://TTT2.txt"));       
        int b;
        while((b = bis.read()) != -1) {
            bos.write(b ^ 123);
        }   
        bis.close();
        bos.close();
    }
    public static void main(String[] args) throws IOException {
        encryption();
    }
}

3、编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把他们合并起来得到完整的文件。

 

转载于:https://www.cnblogs.com/jmdd/p/9991448.html

相关文章:

  • 华为S5700系列交换机配置通过Telnet登录设备
  • 4g伪基站如何实现的
  • logStash安装
  • 在树莓派上安装Ubuntu Core
  • Java国际化处理
  • 撩课大前端-面试宝典-第九篇
  • C# 后台获取前台交互判断
  • 《转》完美解决微信video视频隐藏控件和内联播放问题
  • 微信浏览器播放音频的问题:preload属性
  • Java并发编程之锁机制之(ReentrantLock)重入锁
  • Python:asyncio模块学习
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • python学习记录-打印九九乘法表
  • Oracle数据库查看表空间是否为自增的
  • 将excel项目管理融入生活
  • ES6指北【2】—— 箭头函数
  • [deviceone开发]-do_Webview的基本示例
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 77. Combinations
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • extjs4学习之配置
  • HashMap剖析之内部结构
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript设计模式与开发实践系列之策略模式
  • java正则表式的使用
  • Mysql5.6主从复制
  • Promise面试题2实现异步串行执行
  • Redis 中的布隆过滤器
  • Zepto.js源码学习之二
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 初识 beanstalkd
  • 从零开始在ubuntu上搭建node开发环境
  • 从输入URL到页面加载发生了什么
  • 工程优化暨babel升级小记
  • 和 || 运算
  • 前端路由实现-history
  • 思维导图—你不知道的JavaScript中卷
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 无服务器化是企业 IT 架构的未来吗?
  • 仓管云——企业云erp功能有哪些?
  • 积累各种好的链接
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​queue --- 一个同步的队列类​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #include
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2)STL算法之元素计数
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot掌上博客系统 毕业设计063131