写点什么

JAVA 对于文件 IO 操作的支持

用户头像
卢卡多多
关注
发布于: 3 小时前
JAVA对于文件IO操作的支持

关于 IO:

  • I:input  输入

  • O:output  输出


io:操作可以针对当前的文件和网络中的输入输出;但是 File 只能是将数据可以作为输入直接发送




输入输出是针对参照物来说的;--参照物是程序简单的操作:比如我们要将数据导出到文件:----程序(将符合条件的)数据输出到文件中()从文件中读取数据: 输入操作;


数据-->程序--->文件 file         输出操作


文件 file(存在数据)-->程序-->数据   输入操作


导出数据到文件---输出流

服务器发送数据给客户端:

  • 对于服务器来说是输出操作   - 对于客户端来说是输入操作;

2.IO 流的分类:

(1)方向:  输入流和输出流


(2)操作数据的单位(怎么写入写出文件)    通过字节流和字符流来书写


字节流:字节流:简而言之,是通过 byte 数组来具体实现的,以字节为单位 byte;//字节流适用于任何文件比如音频,视频,xlsx,


字符流:(只用于读写纯文本数据)字符流:顾名思义,是通过 char 数组来具体实现的,以字符为单位 char;

字符流的特点:

/**字符流的输出、输入操作只是纯文本数据*/


纯文本数据-->内容都是字符


//纯文本文件: .txt,.html,.xml,.properties 等文件;


(3)功能角色不同节点流和处理流

3.IO 流的四大抽象基类、超类、父类

就是基础的类,可以有具体继承的子类,有更多的功能和实现哈哈;


  • (1)inputStream:--字节输入流

  • (2)outputStream:--字节输出流

  • (3)Reader:--字符输入流

  • (4)Writer:--字符输出流


只要是导出,输出文件;都属于输出流(将数据通过程序转化为具体格式的数据文件)文件的 IO 流 - (1)FileinputStream:--文件字节输入流


- (2)FileoutputStream:--文件字节输出流


- (3)FileReader:--文件字符输入流


- (4)FileWriter:--文件字符输出流

如何加载一个文件

关于新的文件 IO 操作:


  1. 确定当前的 io 流;

  2. 选择操作文件的单位(字节流还是字符流)--一般是字节流:

  3. 开始具体的方法操作;API;

场景:读取一个文件中的数据;


我们这里使用的 FileReader 的一个类


读取文件--根据字符流(读取纯文本文件)-->我们使用的是一个叫 FileReader 的抽象类



package day14_Test1;
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.Arrays;
import org.junit.Test;
public class Test22 { public static String path="D:\\\\复习计划.TXT"; public static void main(String []args) throws IOException { FileInputStream file=new FileInputStream("D:\\\\1234.TXT"); //读取文件 byte[] date=new byte[1024]; int length; while((length=file.read())!=-1){ // System.out.println(Arrays.toString(date)); System.out.println(new String(date,0,length)); } //关闭 file.close();// // //利用文件io流读取一个纯文本文件,使用的事字符流// // FileReader fileReader=new FileReader("D:\\\\复习计划.TXT");// // int len=fileReader.read();// System.out.println(len);// // // // // // } @Test public void testInput() throws IOException { //利用字节流读取一个文件 FileInputStream file=new FileInputStream(path); //读取文件 byte[] date=new byte[1024]; int length; while((length=file.read())!=-1){ System.out.println(Arrays.toString(date)); } //关闭 file.close(); }
}
复制代码

基本的文件操作“

package src.main.java.sendemail.demo.entries.fanxing;
import org.junit.Test;
import javax.xml.crypto.Data;import java.io.File;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;
/** * @author lucas * @time 2021/8/16/16:26 * @description **/public class fanxing2 { //io操作的;流式文件表示;
//1.java.io.File的类,表示的是路径名、文件、目录的抽象形式 //可能是存在的文件路径也可能不是;
/**\ * windows文件路径中自带的: \表示文件的层级分割符号,比如D:\安装环境的安装包\consul_1.7.2_windows_amd64 * 对于跨平台多个,比如Linux中多数使用的事 :/左斜杠表示跨平台通用的; * * (2)对于file中的文件分割符:特殊的可以表示 * * * (3)文件可以进行的操作, * 是否存在,可读,可写,大小,长度,信息,父目录的file对象,父目录的名字 */ SimpleDateFormat data1 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Test public void Test1(){ System.out.println("时间转换"+data1.format(new Date())); File fileweb=new File("D:/尚硅谷/图片/QQ截图20181210225639.jpg"); System.out.println("文件是否存在"+fileweb.exists()); //文件是否存在true System.out.println("文件大小"+fileweb.length()); System.out.println("文件是否隐藏"+fileweb.isHidden()); System.out.println("文件是否可读"+fileweb.canRead()); System.out.println("文件是否可写"+fileweb.canWrite()); System.out.println("文件名字"+fileweb.getName());
//特殊的父目录 //获取父目录的路径名 System.out.println("父目录的名称"+fileweb.getParent()); //获取父目录的文件对象, System.out.println("父目录的名称"+fileweb.getParentFile());
//最后的修改时间是 System.out.println("最后的修改时间"+fileweb.lastModified());//最后的修改时间1557930823262
//时间戳的标识 SimpleDateFormat data =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //当前的系统时间 System.out.println("时间转换"+data1.format(new Date())); //时间转换2020-06-29 15:34:43 System.out.println("时间转换"+data.format(new Date(fileweb.lastModified())));//时间转换19-33-15 10:33:43



// 文件是否存在true// 文件大小58577// 文件是否隐藏false// 文件是否可读true// 文件是否可写true// 文件名字QQ截图20181210225639.jpg// 父目录的名称D:\尚硅谷\图片// 父目录的名称D:\尚硅谷\图片 //表示特殊的分隔符 System.out.println(File.separator); // \ System.out.println(File.separatorChar); // \ System.out.println(File.pathSeparatorChar); // ; } // File fileweb=new File("D:\\安装环境的安装包\\consul.docx");


}
复制代码


一般是选用的事尽可能规范的路径,实际的表示以自身需求为主;

发布于: 3 小时前阅读数: 2
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
JAVA对于文件IO操作的支持