File类

File file =new File("路径"); File file =new File("E:/aa.jpg");

File file=new File("父级路径","子级路径") File file =new File("E:/","aa.jpg");

file.getName(); 文件名

file.getPath(); 路径

file.getParent(); 上级路径

file.mkdirs(); 创建路径 (加s可以创建多层路径)

file.createNewFile(); 创建新文件

file.length();文件的长度,字节长度

Sting[] f=file.list();返回一个字符串数组,由路径名组成。

File[] =file.listFile();返回一个File数组,由File实例组成。

递归文件和文件夹。。。

过滤文件。。。。

                                                          InputStream,OutputStream(抽象类,不可以实例化)

                                                          FileInputStream,FileOutputStream

                                            InputStream in=new FileInputStream("路径");                                       

                                            OutputStream out=new FileOutputStream("路径");

输入流:read    输出流:write

拷贝文件 通过一个byte[]数组

int len=0;

byte[]b=new byte[1024];

while((len=in.read(b))!=-1){

out.wtite(b,0.len);

}

BufferedInputStream和BufferedOutputStream 字节缓冲流 8k

监听键盘输入:InputStream in=Sytem.in;

序列流(合并流)SequenceInputStream

合并流(合并的文件类型要一致)

                                            //合并两个

SequenceInputStream sis=new SequenceInputStream(输入字节流,输入字节流);(歌曲和文本的合并)

合并多个

多个输入字节流被添加到一个 LinkedSet<InputStream> set =new LinkedSet<InputStream>();

set.add(多个输入字节流);

Iterator<InputStream> it=set.iterator();

SequenceInputStream sis=new SequenceInputStream(new Enumeration{//匿名内部类

@Override

                                public boolean hasMoreElements() {

                                          return iter.hasNext();

}

@Override

public InputStream nextElement() {

return iter.next();

}

})

数据流

DateInputStream; DataOutputStream;

对象序列化:(ObjectInputStream,ObjectOutputStream);

序列化: 将java对象存到磁盘

反序列化:将磁盘的内容转为java对象

想要序列化的类,需要实现Serializable接口

当连续两次序列化同一对象引用时,并不会有两个对象被序列化

即使当第一序列化完成后,修改了对象的值,再次进行序列化,

被序列化对象的值也不会发生变化。

操作字节数组流:ByteArrayInputStream以及ByteArrayOutputStream

随机访问文件:

RandomAccessFile

                                    int skipBytes(int)  向前移动文件指针指定的字节数

                                    void seek(long)    文件指针定位,参数为偏移量

                                    long getFilePointer() 获得指针

                                    以上说的,都是距离文件的首个字符

//解压

ZipIntputStream zis=new ZipIntputStream(输入字节流);

  ZipFile zf = new ZipFile("压缩文件的路径");  ZipFile主要是为了获取流

  首选需要判断,是否为文件夹。如果是则创建路径,不是文件夹就解压文件,并定义输出文件,

解压文件需要判断是否有上级路径,没有就创建上级路径,判断是否文件存在,没有就创建文件

//压缩单个文件,直接压缩

ZipOutputStream zos=new ZipOutputStream (输出字节流,将文件压缩到什么位置)

zos.putNextEntry(new ZipEntry(文件的名称));

直接将文件拷贝到需要压缩的路径

压缩文件夹

通过递归去判断是单个文件还是文件夹,如果是文件夹需要继续自己调用自己,去遍历,如果是文件则直接压缩

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容