Java IO 、 File 、 文件复制
目录
1.1转换流
1.1.1概述
1.1.2 InputStreamReader
1.2打印流
1.2.1概述
1.2.2 使用
1.3 对象流 / 序列化
1.3.1 概述
1.3.2序列化
1.3.4注意
1.4serialVersionUID
1.5Transient
1.6 File
1.6.1 概述
1.6.2 构造方法
1.6.3 常用方法
1.6.4 使用方式
1.1转换流
1.1.1概述
输入流 : InputStreamReader
输出流 : OutputStreamWriter
特点 :
转换流是指将字节流向字符流的转换 ,主要有InputStreamReader和OutputStreamWriter
InputStreamReader : 主要是将字节流输入转换为字符输入流
OutputStreamWriter : 主要数将字节输出流转换为字符输出流
1.1.2 InputStreamReader
package com;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;/*** 字节输入流 转 字符输入流* * @author 人间失格* @data 2021年10月27日下午6:41:35*/
public class IO_01_InputStreamReader {public static void main(String[] args) throws Exception {//字节输入FileInputStream fis = new FileInputStream("D:/a.txt");//转为字符输入InputStreamReader isr = new InputStreamReader(fis);//缓冲流 提高效率BufferedReader br = new BufferedReader((isr));String temp = null ;while ((temp=br.readLine())!=null){System.out.println(temp);}}
}
1.2打印流
1.2.1概述
特点 :
打印流是输出最方便的类
包含字节打印流PrintStream , 字符打印流PrintWriter
PrintStream是OutputStream的子类 , 把一个输出流的实例传递到打印流之后,可以更加方便的输出内容,相当于把输出流重新包装一下
PrintStream类的print()方法被重载很多次print(int i)、print(boolean b)、print(char c)
标准输入/输出
Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过System.out执行输出时,程序总是输出到屏幕。
在System类中提供了三个重定向标准输入/输出的方法
static void setErr(PrintStream err) : 重定向"标准"错误输出流
static void setIn(InputStream in) : 重定向"标准"输入流
ststic void setOut(PrintSteam) : 重定向"标准"输出流
1.2.2 使用
package com;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;/*** 打印流* * @author 人间失格* @data 2021年10月27日下午6:59:28*/
public class IO_02_PrintStream {public static void main(String[] args) throws FileNotFoundException {//创建字节输出流FileOutputStream fos = new FileOutputStream("D:/b.txt");//封装为打印流PrintStream ps = new PrintStream(fos);//调用方法进行打印//换行ps.println();ps.println("我想吃烤肉呀!!");ps.println("可是我在敲代码!!!");ps.println(true+"我是Boolean型");ps.println("数子也可以呢 : "+12345);//使用System自带的打印流 , 默认打印到控制台System.out.println("=====");//更改打印位置,把默认打印到控制台的打印到指定的位置System.setOut(ps);System.out.println();System.out.println("也没有钱去吃,555");}
}
1.3 对象流 / 序列化
1.3.1 概述
序列化 : ObjectOutputStream 把对象保存在硬盘中
反序列化 : ObjectInputStream : 把硬盘中的对象载入到内存中
创建对象的几种方式 :
1. new用的是最多最频繁的
2. 反射机制
3. clone 克隆 已经过时,被反序列化代替了
4. 反序列化
目的 : 长期存储 , 对象传递
应用场景 :
序列化就是将数据对象转换为二进制流,从而可以进行数据持久化和网络传输
如果对象不进行序列化操作,那么没有办法存储和传递
数据对象->序列化->二进制流->加密处理->网络传递->解密处理->反序列化->数据对象
某个对象想要被序列化,那么该类必须实现Serializable接口,该接口没有任何方法功能,只是一种标记
1.3.2序列化
package com;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;/*** 序列化 : ObjectOutputStream 把对象保存在硬盘中* * 反序列化 : ObjectInputStream : 把硬盘中的对象载入到内存中* * 创建对象的几种方式 : * 1. new用的是最多最频繁的* 2. 反射机制* 3. clone 克隆 已经过时,被反序列化代替了* 4. 反序列化* 目的 : 长期存储 , 对象传递* * 应用场景 : * 序列化就是将数据对象转换为二进制流,从而可以进行数据持久化和网络传输* 如果对象不进行序列化操作,那么没有办法存储和传递* * 数据对象->序列化->二进制流->加密处理->网络传递->解密处理->反序列化->数据对象* * 某个对象想要被序列化,那么该类必须实现Serializable接口,该接口没有任何方法功能,只是一种标记* * @author 人间失格* @data 2021年10月27日下午7:27:54*/
public class IO_04_ObjectOutputStream {public static void main(String[] args) throws Exception {//创建对象User user = new User("大聪明", 20);//创建输出流FileOutputStream fos = new FileOutputStream("D:/e.txt");//创建对象流ObjectOutputStream oos = new ObjectOutputStream(fos);//写对象oos.writeObject(user);//刷缓存,关闭资源oos.flush();oos.close();}}
1.3.3反序列化
package com;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.ObjectInputStream;public class IO_05_ObjectInputStream {public static void main(String[] args) throws Exception {//创建输入流FileInputStream fis = new FileInputStream("D:/e.txt");//从硬盘到内存ObjectInputStream ois = new ObjectInputStream(fis);Object o = ois.readObject();System.out.println(o);User user = (User) o ;}}
1.3.4注意
要序列化的对象,该类必须实现Serializable接口
1.4serialVersionUID
1.5Transient
1.6 File
1.6.1 概述
java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关
File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
File对象可以作为参数传递给流的构造器
1.6.2 构造方法
1.6.3 常用方法
获取功能:
public String getAbsolutePath():获取绝对路径
public String getPath() :获取路径
public String getName() :获取名称
public String getParent():获取上层文件目录路径。若无,返回null
public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified() :获取最后一次的修改时间,毫秒值
public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组
public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组
重命名功能:
public boolean renameTo(File dest):把文件重命名为指定的文件路径
判断功能:
public boolean isDirectory():判断是否是文件目录
public boolean isFile() :判断是否是文件
public boolean exists() :判断是否存在
public boolean canRead() :判断是否可读
public boolean canWrite() :判断是否可写
public boolean isHidden() :判断是否隐藏
创建删除功能:
public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false
public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。 如果此文件目录的上层目录不存在,也不创建。
public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建
注意事项:如果你创建文件或者文件目录没有写盘符路径,那么,默认在项目 路径下。
public boolean delete():删除文件或者文件夹
删除注意事项:
Java中的删除不走回收站。
要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录
1.6.4 使用方式
package com;import java.io.File;
import java.io.IOException;/*** File 进行文件和文件夹操作,不能访问数据* * @author 人间失格* @data 2021年10月27日下午8:14:33*/
public class IO_06_File_01 {public static void main(String[] args) throws IOException {//创建一个文件对象File f1 = new File("F:\\111\\222\\333");//获取全路径System.out.println(f1.getAbsolutePath());//判断是否是文件System.out.println(f1.isFile());//判断是否是目录System.out.println(f1.isDirectory());//获取父路径System.out.println(f1.getParent());//父目录对象System.out.println(f1.getParentFile());//判断该目录或该文件 是否存在System.out.println(f1.exists());//创建f1 = new File("D:/a/b/c");if(!f1.exists()){//创建文件,如果有该文件就不创建了,但是不会创建目录//如果创建了,返回true , 如果没有创建 就返回falseboolean isCreate = f1.createNewFile();System.out.println(isCreate);}else {//程序到这里说明存在//删除该文件f1.delete();}f1 =new File("F:\\111\\222\\333");//获取所有子文件File [] subFile = f1.listFiles();for(File file : subFile){System.out.println(file.getName());}}
}
Java IO 、 File 、 文件复制相关推荐
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...
- 利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件
2016-11-18 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上.利用java.io.File类指定本地的文件夹进行遍历所有的文件. package org.lxm ...
- java io 创建文件夹_Java中Io流操作-File类的常用操作-创建文件,创建文件夹
package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...
- Java文件类– java.io.File
Java File class is at the center of Java IO operations. Java File类是Java IO操作的中心. Java文件类 (Java File ...
- 使用java.io.File操作文件及文件夹
如果有兴趣了解更多相关内容,可以来我的个人网站看看:eyes++的个人空间 一:File类的概述 java有个io包,java用于操作流的对象都在io包中,io流简单来说就是input和output流 ...
- java io大文件_JavaIO流对大文件进行分割与合并
对于大文件传输不方便时候可以试一下分割之后再操作: package com.lym; import java.io.BufferedInputStream; import java.io.Buffer ...
- java.io.file.sync_Java(25)IO流和File类
IO流+File类 File类 讲IO流之前先来讲以下File类.Java的标准库Java.io提供了File类来操作文件和目录.操作可以有:新建.删除.重命名等,但是不能访问文件本身的内容,如果想要 ...
- java:IO流(缓冲流、对象流、控制台IO、转换流、java.io.File 类 )
目录 一.IO 流的结构体系 二.缓冲流:BufferedInputStream & BufferedOutputStream 三.对象流:ObjectInputStream & Ob ...
- java io在文件结尾持续添加内容
[代码] java io在文件结尾持续添加内容 public static void write(String path, String content) {try {File f = new Fil ...
- Java IO: File
转载自 Java IO: File 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) Java IO API中的FIle类可以让你访问底层文 ...
最新文章
- c语言一对圆括号不能,C语言单元习题集
- UA MATH567 高维统计II 随机向量11 kernel的构造 用内积替换反三角函数
- Java虚拟机常量池和本地变量表、自己定义的数值自动装入常量池
- P2285 [HNOI2004]打鼹鼠
- 4.3 欠拟合与过拟合
- 《软件架构师的12项修炼》读书笔记-技术之天花板
- ABAP Netweaver和git的快捷方式
- 不一样的ZTree,权限树.js插件
- python迷宫最短路径_python实现最短路径的实例方法
- 5G NR 标准:下一代无线通信技术
- python程序设计课后答案第二版_智慧职教APPPython程序设计(深圳信息职业技术学院)课后答案...
- @SuppressWarnings
- ffmpeg转码保留时间戳
- html文字logo
- 计算机管理组合用户,Windows2000用户和计算机帐户管理
- vmware设置静态ip地址
- 赵小楼《天道》《遥远的救世主》深度解析(39)芮小丹的恋爱态度:敞亮
- C#上位机开发连接三菱PLC
- 无人机感知与规避技术综述
- 统计各个年份出生的人数.如1996多少人,1997多少人