目录
//编码:将文字转成字节数据
GBK:一个汉字两字节,字母一字节
utf-8:一个汉字三字节,字母一字节
//解码:将字节数组转成字符串数据
1:File类
1、 文件可认为是相关记录或放在一起的数据的集合。文件一般存放在存储介质上:硬盘、u盘、光盘、软盘、云盘等。(云管段)
2、 java.io.File 类是专门对文件进行操作的类。(只能对文件本身进行操作,不能对文件内容操作)
3、 File类是“文件和目录路径名的抽象表示”。而不是指文件的内容。
4、 File类定义了一些与平台无关的方法操作,如:创建、删除文件和重命名等。
5、 Java中目录被看成是一个特殊的文件。List()方法可以返回目录中所有的子目录和文件。
6、 在linux下路径分隔符为(/),而在windos中则是为(\),在java中可以正确的处理不同系统中的分隔符。
1.1:File类的常用方法
File file = new File("D:\java\Java高级\myfile\a.txt");
1、文件属性
package cn.sz.gl.test05;
import java.io.File;
public class Test {
public static void main(String[] args) {
//新建对象
File file = new File("D:\\java\\Java高级\\myfile\\a.txt");
//分隔符
System.out.println("file.separator:"+file.separator);
System.out.println("file.exists(),判断对象所对应的目录或文件是否存在:"+file.exists());
System.out.println("判断对象是否是一个目录(file.isDirectory()):"+file.isDirectory());
System.out.println("判断是否是一个文件(file.isFile()):"+file.isFile());
System.out.println("判断是否是隐藏文件或目录(file.isHidden()):"+file.isHidden());
System.out.println("最后修改时间(file.lastModified()):"+file.lastModified());
System.out.println("文件长度(以字节为单位):"+file.length());
System.out.println("获取文件名字:"+file.getName());
System.out.println("获取文件路径:"+file.getPath());
}
}
2、文件的操作
package cn.sz.gl.test05;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\java\\Java高级\\myfile");
//可以创建文件对象的上一级目录
boolean bool = file.mkdir();
//判断路径是否存在,如果不存在,就创建对应目录(多级)
boolean morebool = file.mkdirs();
//boolean isDelete = file.delete();
//System.out.println("是否删除成功:"+isDelete);
if(file.isDirectory()){
//得到目录下所有的直接子目录和文件
File [] allfile = file.listFiles();
for (int i = 0; i < allfile.length; i++) {
System.out.println(allfile[i].getPath());
}
}else{
System.out.println("不是一个目录");
}
}
}
3、文件的过滤
package cn.sz.gl.test05;
import java.io.File;
import java.io.FileFilter;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\java\\Java高级\\myfile");
// 判断是否是一个目录
if (file.isDirectory()) {
File[] all = file.listFiles(new FileFilter() {
@Override
public boolean accept(File myfile) {
// 判断是否是一个目录,是就通过
if (myfile.isDirectory()) {
return true;
}
// 判断文件是否是以.txt结尾的,是就通过
if (myfile.getName().endsWith(".txt")) {
return true;
}
return false;
}
});
for (int i = 0; i < all.length; i++) {
System.out.println(all[i].getPath());
}
}
}
}
2:IO流
IO流:输入输出流。 统称为数据流。(IO Stream)------IO指的是Input/Output,
在Java程序中,对于数据的输入 / 输出操作以流的方式进行;流是从起源到接收的有序数据。JDK提供了各种各样的流类,用以获取不同种类的数据;
1:流的分类
按数据传输单位分:
◦ 字节流:以字节为单位传输数据的流
◦ 字符流:以字符为单位传输数据的流
字节 (Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。. 字符 (Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'
一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示
流:是对一个已存在的流的连接和封装,通过对数据的处理为程序提供更强大、灵活的读写功能。
2:IO流的分类
分类 | 字节输出流 | 字节输入流 | 字符输出流 | 字符输入流 |
---|---|---|---|---|
抽象基类 | OutputStream | InputStream | Writer | Reader |
访问文件 | FileOutputStream | FileInputStream | FileWriter | FileReader |
访问数组 | ByteArrayOutputStream | ByteArrayInputStream | CharArrayWriter | CharArrayReader |
访问管道 | PipedOutputStream | PipedInputStream | PipedWriter | PipedReader |
访问字符串 | StringWriter | StringReader | ||
缓冲流 | BufferedOutputStream | BufferedInputStream | BufferedWriter | BufferedReader |
转换流 | OutputStreamWriter | InputStreamReader | ||
对象流 | ObjectOutputStream | ObjectInputStream | ||
抽象基类 | FilterOutputStream | FilterInputStream | FilterWriter | FilterReader |
打印流 | PrintStream | PrintWriter | ||
推回输入流 | PushbackInputStream | PushbackReader | ||
特殊流 | DataOutputStream | DataInputStream |
3、总结
IO流是数据输入输出的一种通道,我们可以利用不同的流去拿到文件中的数据和将数据写入文件中
其中包含多种流:最为常用的是InputStream/OutputStream,Reader/Writer以及打印流PrintStream/PrintWriter
4、建议采纳
如有建议或者错误请私信我进行修改,感谢!!!