实验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("请输入一个文件夹
");
        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