java基础知识点07_文件与IO流

java基础知识点07_文件与IO流

File类的四个静态成员变量:

public static void main(String[] args) {
	//路径分隔符,windows系统为; linux系统为:
	String pathseparator = File.pathSeparator;
	char pathseparatorchar = File.pathSeparatorChar;
	//文件分隔符, windows系统为\ linux系统为/
	String separator = File.separator;
	char separatorchar = File.separatorChar;
	
	System.out.println(pathseparator);
	System.out.println(pathseparatorchar);
	System.out.println(separator);
	System.out.println(separatorchar);
	
}

运行结果:

;
;
\
\
pathSeparator		路径分隔符 ; 	String类型
pathSeparatorChar	路径分隔符 ; 	char类型
separator			文件分隔符 \		String类型
separatorChar		文件分隔符 \		char类型

获取功能的方法:

public String getAbsolutePath()		获取绝对路径
public String getPath()				获取构造路径(构造方法中传递的路径)
public String getName()				获取文件名称
public String length()				获取文件大小(单位:字节)

判断功能的方法:

public boolean exists()				判断文件或目录是否存在
public boolean isDirectory()		判断是否是目录(不要求一定要存在)
public boolean isFile()				判断是否是文件(不要求一定要存在)

创建和删除功能的方法:

public boolean createNewFile()		创建新文件(若文件已存在,则不会创建并返回falsepublic boolean delete()				删除文件或目录
public boolean mkdir()				创建单级文件夹                                     
public boolean mkdirs()				创建多级文件夹

遍历目录(文件夹)的方法:

public String[] list()			返回String数组,存储该文件夹中所有的子文件和子目录的名称
public File[] listFiles()		返回File数组,存储该文件夹中所有的子文件和子目录的File对象

IO流

输入流输出流
字节流InputStreamOutputStream
字符流(1个字符=2个字节)ReaderWriter

抽象类 字节输出流 OutputStream 的方法:

close()
flush()
write(byte[] b)
write(byte[] b,int off,int len)
write(int b)

最常用子类 FileOutputStream

构造方法1(直接传递文件路径字符串):
FileOutputStream fos = new FileOutputStream("D:\\temp\\a.txt");

构造方法2(传递文件对象):
File myfile = new File("D:\\temp\\a.txt");
FileOutputStream fos = new FileOutputStream(myfile);

写数据时,会将10进制的整数97转换成2进制1100001存入文件,用文本编辑器打开时,其会根据编码表将字节转换为字符a
fos.write(97);
释放资源,清空内存
fos.close();

数据追加写(在构造方法中添加一个trueboolean参数,就实现了数据追加写,参数为false则会覆盖源文件)
FileOutputStream fos = new FileOutputStream("D:\\temp\\a.txt",true);
fos.write("你好,BLU".getBytes());
fos.close();

数据换行写
FileOutputStream fos = new FileOutputStream("D:\\temp\\a.txt",true);
fos.write("\r\n".getBytes());
fos.write("你好,BLU".getBytes());
fos.close();

抽象类 字节输入流 InputStream 的方法:

int read()
int read(byte[] b)
void close()

最常用子类 FileInputStream

//文件内容:abc	读取结果:97 98 99 -1
FileInputStream fis = new FileInputStream("D:\\temp\\a.txt");
//read方法每一次读取都只会读取1个字节,下一次会读取下一个字节,末尾之后读取到的值都为-1
int len1 = fis.read();
System.out.println(len1);
int len2 = fis.read();
System.out.println(len2);
int len3 = fis.read();
System.out.println(len3);
int len4 = fis.read();
System.out.println(len4);
fis.close();

循环优化:
FileInputStream fis = new FileInputStream("D:\\temp\\a.txt");
int len = 0;
while((len = fis.read())!=-1) {
	System.out.println((char)len);
}
//文件复制(每次复制一个字节)
FileInputStream fis = new FileInputStream("D:\\temp\\a.txt");
FileOutputStream fos = new FileOutputStream("D:\\temp\\b.txt");
int len = 0;
while((len = fis.read())!=-1) {
	fos.write(len);
}
fos.close();
fis.close();
//文件加密
package com.blu.file01;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test01 {
	
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("D:\\temp\\a.txt");
		FileOutputStream fos = new FileOutputStream("D:\\temp\\b.txt");
		jiami(fis,fos);
		fos.close();
		fis.close();
	}
	
	public static void jiami(FileInputStream fis,FileOutputStream fos) throws IOException {
		byte[] bytes = new byte[204800];
		int len = 0;
		while((len=fis.read(bytes))!=-1) {
			for(int i=0;i<204700;i++) {
				bytes[i]++;
			}
			fos.write(bytes, 0, len);
		}
		
	}
	
	public static void jiemi(FileInputStream fis,FileOutputStream fos) throws IOException {
		byte[] bytes = new byte[204800];
		int len = 0;
		while((len=fis.read(bytes))!=-1) {
			for(int i=0;i<204700;i++) {
				bytes[i]--;
			}
			fos.write(bytes, 0, len);
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值