java从小白开始(IO流入门)
Posted 韶光不负
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从小白开始(IO流入门)相关的知识,希望对你有一定的参考价值。
相信大家在许多的情况下都需要对电脑文件进行输入与输出,原因程序的结果一般存储在内存当中,当你没有保存到磁盘当中时,数据是无法进行持久化(长时间保存)的,所以使用I/O流就很重要了,下面就和小编一起来看看吧!
目录
文件类操作(在Java中一切皆是对象,所以可以使用对象方式操作文件)
什么是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类来操作文件
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的常见方法
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()); //打印图片名称出来
以上是关于java从小白开始(IO流入门)的主要内容,如果未能解决你的问题,请参考以下文章