1.什么是文件
文件就是我们保存数据的地方,比如我们经常使用的 word文档,txt文件
2.什么是文件流
文件在程序中是以流的方式来操作的
输入流:数据在数据源文件到程序的路径
输出流:数据从程序到数据源文件到路径
创建文件对象构造器和方法
new File(String pathname)//根据路径构建一个File对象
new File(File parent,String child)//根据父目录文件内+子路径构建
new File(String parent,String child)//根据父目录+子路径构建
例题
import org.junit.Test;
import java.io.File;
import java.io.IOException;
/**
*
* 创建文件的三种方式
*
*/
public class FileCreat01 {
public static void main(String[] args) {
}
@Test
//方式一
public void creat01(){
String filePath="e:\\news1.txt";
File file = new File(filePath);
try {
file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Test
public void create02(){
File parentfile = new File("e:\\");
String fileName ="news2.txt";
//这里的file对象,在java程序中,只是一个java对象而已
//只有执行了createfile方法才会整整的从磁盘创建该文件
File file = new File(parentfile, fileName);
try {
file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Test
//方式3
public void create03(){
String parentPath= "e:\\";
String fileName ="news3.txt";
File file = new File(parentPath, fileName);
try {
file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
获取文件到相关信息的各种方法
import org.junit.Test;
import java.io.File;
/**
*
* 获取文件信息
*/
public class FileInformation02 {
public static void main(String[] args) {
}
@Test
//获取文件信息
public void info(){
//先创建文件对象
File file = new File("e:\\news1.txt");
//调用相应的方法,得到对应信息
System.out.println("文件名字 = "+file.getName());
System.out.println("文件绝对路径:"+file.getAbsolutePath());
System.out.println("文件父级目录:"+file.getParent());
System.out.println("文件字节大小:"+file.length());
System.out.println("文件是否存在:"+file.exists());
System.out.println("是不是一个文件:"+file.isFile());
System.out.println("是不是一个目录:"+file.isDirectory());
}
}
目录的操作和文件删除
mkdir创建以及目录,mkdirs创建多级目录,delete删除空目录或文件
import org.junit.Test;
import java.io.File;
/**
*
* 判断文件存在不存在 存在便删除
*/
public class Directory03 {
public static void main(String[] args) {
}
//判断d:\\news1.txt是否存在 如果存在就删除
@Test
public void m1(){//删除news1.txt
String filepath="e:\\news1.txt";
File file = new File(filepath);
if(file.exists()){
if (file.delete()){
System.out.println(filepath+"删除成功");
}else {
System.out.println("删除失败");
}
}else {
System.out.println("文件不存在");
}
}
//判断D:\\demo02是否存在,存在就删除
//这里我们需要体会到,在java编程中,目录也被当做文件
@Test
public void m2(){
String filepath="d:\\demo02";
File file = new File(filepath);
if(file.exists()){
if (file.delete()){
System.out.println(filepath+"删除成功");
}else {
System.out.println("删除失败");
}
}else {
System.out.println("目录不存在");
}
}
判断: D:\\demo\\a\\b\\c是否存在,存在提示已存在,不存在创建
public void m3(){
String directorPath="d:\\demo\\a\\b\\c";
File file = new File(directorPath);
if(file.exists()) {
System.out.println("目录存在");
}else {
if(file.mkdirs()){
System.out.println("directorPath"+ "创建成功");
}else {
System.out.println("directorPath" +"创建失败");
}
}
}
}
Java IO流原理
1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输,如读写文件等
2.Java程序中,对于数据的输入、输出操作以“流”的方式进行
3.java.io包下提供了各种“流”类和接口用以获取不同种类的数据,并通过方法输入或输出数据
4.输入input:读取外部数据(磁盘,光盘等存储设备的数据到程序(内存)中)
5.输出output:将程序(内存)数据输出到磁盘,光盘等存储设备中
流的分类
按操作数据单位不同分为 :字节流 (8比特)二进制文件 和 字符流(按字符)文本文件
按数据流的流向不同分为:输入流 和 输出流
按数据流的不同分为:节点流 和 处理流/包装流
抽象基类 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer 由上面四种抽象基类派生出40多个类,子类名称都是以其父类名作为子类名后缀

InputStream抽象类是所有类字节输入流的超类
InputStream常用的子类(字节流)
1.FileInputStream:文件输入流
2.BufferedInputStream :缓冲字节输入流
3.ObjectInputStream: 对象字节输入流
FileInputStream
package Inputstream_04;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
/**
*
* 演示读取文件
*/
public class FileInputStream_01 {
public static void main(String[] args) {
}
@Test
public void readFile01(){
String filePath ="e:\\hello.txt";
//一个一个读太慢
int readDate =0;
FileInputStream fileInputStream=null;
try {
//创建FileInputStream对象 ,用于读取文件
fileI

本文围绕Java文件与IO流展开,介绍了文件和文件流的概念,阐述了创建文件对象的构造器和方法,以及获取文件信息、操作目录和删除文件的方法。重点讲解了Java IO流原理、流的分类,详细介绍了各类流的子类及使用,还涉及序列化、反序列化、标准输入输出流、转换流、打印流和Properties类等内容。
最低0.47元/天 解锁文章
1807

被折叠的 条评论
为什么被折叠?



