java IO流

Io是什么:java一个重要的核心输入输出流,Java应用常常需要从外界输入数据或者把数据输出到外界

核心五个类:File、InputStream、OutputStream、Reader、Wirter;
一个接口:Serializable。

File类是唯一的一个与文件本身操作有关的类,所谓的文件本身指的是:文件的创建、删除、重命名、取得文件大小、修改日期。

file.createNewFile();创建文件
file.delete();删除文件
file.exists();文件是否已存在
file.getParentFile(); 获取父类文件夹
file.mkdirs();创建文件夹
file.getName();获取文件名
file.isDirectory();是否为文件夹
file.isFile();是否是文件
file.isHidden();是否是隐藏文件
file.lastModified();最后一次修改时间
file.length();文件大小以字节为单位返回

路径分隔符:
在windows操作系统之中,使用“\”作为路径分隔符,而在linux系统下使用“/”作为路径的分隔符,而从实际的开发而言,大部分情况下都会在windows中做开发,而后将项目部署到linux下,那么此时,路径的分隔符都需要进行修改,这样实在是过于麻烦,为此在File类之中提供了一个常量:
public static final String separator

File file = new File("D:" + File.separator + "demo.txt"); // 文件的路径

字节流 InputStream,OutputStream

OutputStream output = new FileOutputStream(file);
String data = "hello world !\r\nhello world !\r\nhello world !\r\nhello world !";
output.write(data.getBytes());
output.close();
InputStream input = new FileInputStream(file);
byte data[] = new byte[1024]; // 假设要读的长度是1024
int f= 0; // 操作data数组的下标
int temp = 0;
 // 第一步:temp = input.read(),读取一个单个字节,并且将内容给temp变量
// 第二步:temp != -1,将接收到的temp的数值判断是否为-1,如果为-1则表示退出循环,如果不是,则保存数据
while ((temp = input.read()) != -1) {
         data[f++] = (byte) temp; // 保存读取进来的单个字节
       }
input.close(); // 关闭
System.out.println(Arrays.toString(data));//输出字节
System.out.println(new String(bytes,"utf-8"));//输出字符

字符流 Writer,Reader

Writer out = new FileWriter(file);
String data = "Hello World .";
out.write(data); // 直接输出字符串
out.flush() ;   // 清空缓冲区
out.close(); // 关闭输出
Reader in = new FileReader(file); // 字符输入流
char data[] = new char[1024]; // 开辟数组
int len = in.read(data); // 读取数据
in.close();

没有中文用字节流,否则用字符流。

大文件边读边存:

InputStream input = new FileInputStream(inFile);
OutputStream output = new FileOutputStream(outFile);

int temp = 0;//保存每次读取的个数
byte data[] = new byte[4096]; // 每次读取4096字节

while ((temp = input.read(data)) != -1) { // 将每次读取进来的数据保存在字节数组里,并返回读取的个数
	output.write(data, 0, temp); // 输出数组
}
input.close();
output.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值