java从小白开始(IO流入门)

1 篇文章 0 订阅

相信大家在许多的情况下都需要对电脑文件进行输入与输出,原因程序的结果一般存储在内存当中,当你没有保存到磁盘当中时,数据是无法进行持久化(长时间保存)的,所以使用I/O流就很重要了,下面就和小编一起来看看吧!

目录

什么是I/O流?

什么是流?

文件操作

转义字符

文件类操作(在Java中一切皆是对象,所以可以使用对象方式操作文件)

File类,在Java当中使用File类来操作文件

File的常见方法

 作业:查看文件夹下所有的图片


什么是I/O流?

Java中的io是实现输入与输出的基础,可以方便对数据的读取与输入(计算机的的输入输出基本都是二进制的),Java中把输入与输出是以流的形式进行操作的Java.io包中提供了大量的供我们操作的“流”的方法与接口,方便对各类数据的操作) ,所以在io包下以流形式进行操作所以被称为I/O流(小编是这样认为的)。(Java最小的操作单位是byte,不是bit)

什么是流?

简单来说流,可以理解为一种通道,输入输出可以理解为两种不同的通道,以水龙头开水为例,当你打开水龙头开水,水龙头就是一个输出流,而水电局就一个输入流。

文件操作

转义字符

在Java当中不是使用/“正斜杠”来当文件路径,而是使用\“反斜杠”。在Java当\“反斜杠”表示转义。所以使用要小心!!!

\:转义字符的使用
转义前转义后
"\\""\"
"\n"换行,不会跟着上面一起输出,自己另起一排,从头开始
"\r"回车,光标回到当前行的行首,之后的内容会覆盖前面内容
"\n"制表符:占4个空格
package com.ioclass;

import org.junit.Test;

public class FileTest {

    @Test
    public  void testFile(){
        System.out.println("\\"); // 表示文件路径的转义 “\”
        System.out.println("I \r love you"); //回车
        System.out.println( "I \n love \n you"); //换行符
        System.out.println(" i\tlove\tyou "); //制表符 空个格子


    }
}

文件类操作(在Java中一切皆是对象,所以可以使用对象方式操作文件)

File类,在Java当中使用File类来操作文件

File构造器
public File(String pathname) 
通过给定路径名称的字符串来创建File对象
public File(String parent, String child)
通过给定父类路径与文件路径名称的字符串来创建File对象
public File(File parent, String child)
通过给定父类路径对象与文件路径名称的字符串来创建File对象
package com.ioclass;

import org.junit.Test;

import java.io.File;

public class FileTest {

    @Test
    public  void testFile(){
        //方式一
        File file = new File("C:\\Users\\Lenovo\\Pictures\\Camera Roll");

        //方式二
        File file1 = new File("C:\\Users\\Lenovo\\","Pictures\\Camera Roll");

        //方式三
        File file2 = new File(file,"a.txt");

    }
}

File的常见方法

File的常见方法
isFile()
判断该file是不是文件
isDirectory()
判断是不是文件夹
length()
返回此抽象路径名定义的文件的长度。如果此路径名定义了一个目录返回值未指定。
exists()
判断文件是否存在,
createNewFile()
当文件不存在时,创建文件
delete()
删除文件(存不存在都会删除)
deleteOnExit()
判断文件是否存在,存在就删除
mkdir()
创建文件夹
mkdirs()
一次创建多个文件夹
list()
查看文件夹下所有文件
getName()
获取文件名称
getPath()
获取文件路径
getParent()
获取文件夹下的路径
getAbsolutePath()
获取文件夹的绝对路径
getTotalSpace()
查看磁盘容量大小
renameTo(new name)
修改文件名称(记得带后缀名!!!)

练习:

file.renameTo(new File("E:\\IT笔记\\txt")); //修改文件名称方式
package com.ioclass;

import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class FileTest {

    @Test
    public  void testFile(){
        //方式一
        File file = new File("E:\\IT笔记\\test");
        //exists() :判断文件是否存在,存在就可以操作
        if (file.exists()){
            System.out.println(file.getName()); //获取文件名称
            System.out.println(file.getParent()); //获取文件夹路径
            System.out.println(file.getAbsolutePath()); //获取文件绝对路径
            System.out.println(file.getTotalSpace()); //查看磁盘下的容量
            System.out.println(file.getPath()); //获取路径
            System.out.println(file.isFile());//判断是不是文件
            System.out.println(file.isDirectory()); //判断是不是文件夹
            System.out.println(file.length()); //查看文件大小
            boolean isDel = file.delete();
            System.out.println(isDel ? "删除成功" : "删除失败");
        }else {
            try {
                boolean newFile = file.createNewFile();//当文件不存在时创建文件出来
                System.out.println(newFile); //查看是否创建成功
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

 作业:查看文件夹下所有的图片

package com.ioclass;

import org.junit.Test;


import java.io.File;


public class Lookimg {
    @Test
    public void testFile(){
        Lookimg lookimg = new Lookimg();
        String path = "C:\\Users\\Lenovo\\Pictures";
        lookimg.find(path);


    }

//    static  class Myfilter implements FilenameFilter{
//        //重写过滤方法,查找图片
//        @Override
//        public boolean accept(File dir, String name) {
//            return name.contains("png");
//        }
//    }
    public void  find(String path){
        //获取文件对象
        File file = new File(path);
        //过滤获取文件夹或者图片
        File[] list = file.listFiles((f,n) -> new File(f,n).isDirectory() || n.contains("png") || n.contains("jpg"));
        //判断文件是否为空
        if (list == null || list.length == 0){
            return;
        }
        for (File parent: list) {
            if (parent.isDirectory()){
                //递归
                find(parent.getAbsolutePath());

            }else {
                System.out.println(parent.getName()); //打印图片名称出来
            }
        }
    }
}

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶光不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值