java File类与文件输入/输出流:FileInputStream与FileOutputStream
java File类与文件输入/输出流
File类
File类是java.io包中唯一代表磁盘文件本身的类,该类主要用于文件和目录的创建、文件的查找和文件的删除等。
文件的创建与删除
1.File(String pathname) 该构造方法通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
语法如下:
new File(String pathname)
//pathname代表路径名
//例:
File file = new File("E:\file.txt");
2.File(String parent, String child)该方法根据 parent 路径名字符串和 child 路径名字符串(包含文件名)创建一个新 File 实例。
语法如下:
new File(String parent, String child)
//parent:父路径字符串,如:E:/
//child:子路径字符串,如:file.txt
3.File(File f, String child);该构造方法通过给定的f抽象路径名和子路径名字符串创建一个新的File实例。
语法如下:
new File(File f, String child)
//f:父路径字符串,如:E:/
//child:子路径字符串,如:file.txt
创建File对象:
File file = new File("Hello.txt")
例:
import java.io.File;
public class Filetxt{
public static void main(String[] args) {
File file = new File("D:\\Hello.txt");
if(file.exists()) //如果文件存在
{
file.delete(); //删除文件
System.out.println("文件已删除");
}
else {
try {
file.createNewFile(); //创建该文件
System.out.println("文件已创建");
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
如果D盘目录下有Hello.txt文件,输出:文件已删除,反之输出:文件已创建
获取文件信息
创建File对象成功后,常用方法如下:
| 方法 | 描述 |
|---|---|
| public String getName() | 返回由此抽象路径名表示的文件或目录的名称。 |
| public String getParent() | 返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。 |
| public File getParentFile() | 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。 |
| public String getPath() | 将此抽象路径名转换为一个路径名字符串。 |
| public boolean isAbsolute() | 测试此抽象路径名是否为绝对路径名。 |
| public String getAbsolutePath() | 返回抽象路径名的绝对路径名字符串。 |
| public boolean canRead() | 测试应用程序是否可以读取此抽象路径名表示的文件。 |
| public boolean canWrite() | 测试应用程序是否可以修改此抽象路径名表示的文件。 |
| public boolean exists() | 测试此抽象路径名表示的文件或目录是否存在。 |
| public boolean isDirectory() | 测试此抽象路径名表示的文件是否是一个目录。 |
| public boolean isFile() | 测试此抽象路径名表示的文件是否是一个标准文件。 |
| public long lastModified() | 返回此抽象路径名表示的文件最后一次被修改的时间。 |
| public long length() | 返回由此抽象路径名表示的文件的长度。 |
| public boolean createNewFile() throws IOException | 当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。 |
| public boolean delete() | 删除此抽象路径名表示的文件或目录。 |
| public void deleteOnExit() | 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
| public String[] list() | 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。 |
| public String[] list(FilenameFilter filter) | 返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。 |
| public File[] listFiles() | 返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。 |
| public File[] listFiles(FileFilter filter) | 返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。 |
| public boolean mkdir() | 创建此抽象路径名指定的目录。 |
| public boolean mkdirs() | 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。 |
| public boolean renameTo(File dest) | 重新命名此抽象路径名表示的文件。 |
| public boolean setLastModified(long time) | 设置由此抽象路径名所指定的文件或目录的最后一次修改时间。 |
| public boolean setReadOnly() | 标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。 |
| public static File createTempFile(String prefix, String suffix, File directory) throws IOException | 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
| public static File createTempFile(String prefix, String suffix) throws IOException | 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
| public int compareTo(File pathname) | 按字母顺序比较两个抽象路径名。 |
| public int compareTo(Object o) | 按字母顺序比较抽象路径名与给定对象。 |
| public boolean equals(Object obj) | 测试此抽象路径名与给定对象是否相等。 |
| public String toString() | 返回此抽象路径名的路径名字符串。 |
例:
import java.io.File;
public class Filetests{
public static void main(String[] args) {
File file = new File("E:\\Hello.txt");
if(file.exists()) { //如果文件存在
String name = file.getName();
long len = file.length();
boolean hid = file.isHidden();
boolean abso = file.isAbsolute();
System.out.println("名称:"+name);
System.out.println("长度:"+len);
System.out.println("是否是隐藏文件:"+ hid);
System.out.println("是否为绝对路径名:"+abso);
}
}
}
运行结果如下:
名称:Hello.txt
长度:0
是否是隐藏文件:false
是否为绝对路径名:true
文件输入/输出流
FileInputStream与FileOutputStream
InputStream(输入流):输入流是用来读入数据的.
OutputStream(输出流):输出流是用来写出数据的。
FileInputStream
构造方法:
public FileInputStream(String name);
public FileInputStream(File file);
常用方法:
| 方法 | 描述 |
|---|---|
| public int read(); | 从此输入流中读取一个数据字节 |
| public int read(byte[] b); | 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中 |
| public int read(byte[] b,int off,int len); | 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。off:目标数组 b 中的起始偏移量。 |
| 例: |
import java.io.FileInputStream;
public class FileIn {
public static void main(String[] args){
String out=null;
try {
int size=0;
byte[] buffer=new byte[1024];
FileInputStream fis=new FileInputStream("FileIn.txt");
while((size=fis.read(buffer))!=-1){
out=new String(buffer, 0, size);
System.out.println(out);
}
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileOutputStream
构造方法:
| 方法 | 描述 |
|---|---|
| public FileOutputStream(File file); | 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 |
| public FileOutputStream(File file,boolean append); | 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。 |
| public FileOutputStream(String name); | 创建一个向具有指定名称的文件中写入数据的输出文件流。 |
| public FileOutputStream(String name,boolean append); | 创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。 |
常用的方法:
| 方法 | 描述 |
|---|---|
| public void write(int b); | 向文件中写入一个字节大小的数据 |
| public void write(byte[] b); | 将 b.length 个字节从指定 byte 数组写入此文件输出流中。 |
| public void write(byte[] b,int off,int len); | 指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 |
例:
import java.io.FileOutputStream;
public class Filed {
public static void main(String[] args){
try {
String font="输出流是用来写入数据的!";
FileOutputStream fos = new FileOutputStream("Filed.txt");
fos.write(font.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileReader和FileWriter
FileReader
FileReader类继承自InputStreamReader类,它自己只提供了几个构造方法,它的构造方法中又通过super来调用父类构造器以构建流对象,它本身没有再提供其他的读取流数据的方法,全部继承它的直接父类InputStreamReader,而InputStreamReader又是继承自Reader类,因此FileReader和InputStreamReader一样,都能使用read()、read(char cbuf[])、read(char cbuf[], int off, int len)方法来读取流数据。
构造方法:
| 方法 | 描述 |
|---|---|
| public FileReader(String name) | 给定要读取文件名创建一个FileReader对象 |
| public FileReader(File file) | 使用File对象创建一个新的FileReader,给定要读取的File对象 |
FileReader方法:
| 方法 | 描述 |
|---|---|
| public int read() throws IOExecption | 读取单个字符 ,返回一个int型变量代表读取到的字符 |
| public int read(char [] c, int offset, int len) | 读取字符到c数组,返回读取到字符的个数 |
例:
import java.io.*;
public class P13 {
public static void main(String[] args) throws Exception {
FileReader fr=new FileReader("text/test14");
int num;
while((num=fr.read())!=-1){
System.out.println("读取到的内容是:"+(char)num);
}
//关闭流
fr.close();
}
}
FileWriter
构造方法:
| 方法 | 描述 |
|---|---|
| FileWriter(File file) | 在给出 File 对象的情况下构造一个 FileWriter 对象 |
| FileWriter(File file, boolean append) |
append:如果 append 参数为 true,则将字节写入文件末尾处,相当于追加信息。如果 append 参数为 false, 则写入文件开始处。
FileWriter方法:
| 方法 | 描述 |
|---|---|
| public void write(int c) throws IOException | 写入单个字符c |
| public void write(char [] c, int offset, int len) | 写入字符数组中开始为offset长度为len的某一部分 |
| public void write(String s, int offset, int len) | 写入字符串中开始为offset长度为len的某一部分 |
例:
import java.io.*;
public class FileReader {
public static void main(String args[]) throws IOException {
File file = new File("Hello1.txt");
file.createNewFile();
FileWriter writer = new FileWriter(file);
writer.write("read");
writer.flush();
writer.close();
FileReader fr = new FileReader(file);
char[] a = new char[100];
for (char c : a)
System.out.print(c);
fr.close();
}
}
运行结果如下:
read
java File类与文件输入/输出流:FileInputStream与FileOutputStream的更多相关文章
- Java File类与文件IO流总结
1.File类 File类被定义为“文件和目录路径名的抽象表示形式”,这是因为File类既可以表示“文件”也可以表示“目录”,他们都通过对应的路径来描述.通过构造函数创建一个File类对象,则该对象就 ...
- Java 之 File类(文件操作)
一.概述 java.io.File 类是文件和目录路径名册抽象表示,主要用于文件和目录的创建.查找和删除等操作. File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法. 路径问题: ...
- 九:File类,文件的操作
File的常用方法:
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- Java File类基本操作
我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...
- Java File 类的使用方法详解
Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看 ...
- Java File 类的使用方法详解(转)
转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...
- Java——File类概述
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- 使用File类操作文件或目录的属性
在学I/O流之前,我先总结一下使用File类操作文件或目录的属性. package com.File; import java.io.File; import java.io.IOException; ...
- Java File类 mkdir 不能创建多层目录
File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) {boolean re ...
随机推荐
- 数据仓库与hive
数据仓库与hive hive--数据仓库建模工具之一 一.数据库.数据仓库 1.1 数据库 关系数据库本质上是一个二元关系,说的简单一些,就是一个二维表格,对普通人来说,最简单的理解就是一个Excel ...
- http服务(postman调用方法及反参)
#region 监听url #region 监听url路径请求 static HttpListener httpobj; private void listeningUrl() { //提供一个简单的 ...
- 6.云原生之Docker容器Registry私有镜像仓库搭建实践
转载自:https://www.bilibili.com/read/cv15219863/?from=readlist #1.下载registry仓库并设置数据存放的目录(并生成认证账号密码) doc ...
- 第二章:视图层 - 5:HttpRequest对象
每当一个用户请求发送过来,Django将HTTP数据包中的相关内容,打包成为一个HttpRequest对象,并传递给每个视图函数作为第一位置参数,也就是request,供我们调用. HttpReque ...
- Fluentd直接传输日志给Elasticsearch
官方文档地址:https://docs.fluentd.org/output/elasticsearch td-agent的v3.0.1版本以后自带包含out_elasticsearch插件,不用再安 ...
- NSIS隐藏窗口标题栏自带的按钮(最大化,最小化,关闭X)
这个问题实在八月份逛csdn论坛的时候偶然遇到的,当时比较好奇楼主为啥要隐藏关闭按钮,就顺口问了下,结果楼主已经弃楼,未给出原因,猜着可能是为了做自定义页面美化,无法改变按纽外观之类的,后来琢磨了下, ...
- Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明
Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明 作者: Grey 原文地址: 博客园:Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明 ...
- 面向对象的照妖镜——UML类图绘制指南
1.前言 感受 在刚接触软件开发工作的时候,每次接到新需求,在分析需求后的第一件事情,就是火急火燎的打开数据库(DBMS),开始进行数据表的创建工作.然而这种方式,总是会让我在编码过程中出现实体类设计 ...
- 二手商城集成jwt认证授权
------------恢复内容开始------------ 使用jwt进行认证授权的主要流程 参考博客(https://www.cnblogs.com/RayWang/p/9536524.html) ...
- C语言------数据类型与输入输出
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1 .实训名称 2 .实训目的及要求 3 .源代码及运行截图 4 .小结 1 .实训名称 实训2: ...