Java面向对象(七)IO编程
File类操作:
Java的集合框架: 类和接口存在于java.util包中.
Java的IO: 类和接口存在于java.io包中.
学习方法: 文档在手,天下我有!
讲IO操作之前,必须要先讲File类(文件/目录).
-----------------------------------------------------------------------------------------
File类介绍和路径分隔符: File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径.
该类包含了创建,删除文件,重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法. 只能设置和获取文件本身的信息,不能设置和获取文件的内容.
-----------------------------------------------------------------------------------------
Java做开发: 一次编写,到处运行.
Unix: 严格区分大小写.
WIndows: 默认情况下是不区分大小写的.
路径分隔符,属性分隔符:
Unix: 使用”/”,来分割目录路径. 使用 : 来分割属性.
Windows: 使用”\”,来分割目录路径.但是在Java中一个”\”表示转义,在Windows平台的Java代码中表示一个路径,就得使用两个\\. 但是Windows支持/. 使用 ; 来分割属性.
File类中提供了两类常量,分别来表示路径分隔符和属性分隔符.
获取File路径和检测状态:
操作File路径和名称:
File getAbsoluteFile() :获取绝对路径
String getAbsolutePath():获取绝对路径
String getPath() :获取文件路径
String getName() :获取文件名称
File getParentFile():获取上级目录文件
String getParent() :获取上级目录路径
检测File状态的方法:
boolean canExecute() :判断是否是可执行文件
boolean canRead() :判断该文件是否可读
boolean canWrite():判断该文件是否可写
boolean isHidden():判断该文件是否是隐藏文件
long lastModified():判断该文件的最后修改时间
long length():获取该文件的长度大小(单位字节)
练习:
操作IO流的模板:
1):创建源或者目标对象(挖井).
拿文件流举例:
输入操作: 把文件中的数据流向到程序中,此时文件是源,程序是目标.
输出操作: 把程序中的数据流向到文件中,此时文件是目标,程序是源.
2):创建IO流对象(水管).
输入操作: 创建输入流对象.
输出操作: 创建输出流对象.
3):具体的IO操作.
输入操作: 输入流对象的read方法.
输出操作: 输出流对象的write方法.
4):关闭资源(勿忘).
一旦资源关闭之后,就不能使用流对象了,否则报错.
输入操作: 输入流对象.close();
输出操作: 输出流对象.close().
Notes:
操作IO流的六字箴言: 读进来,写出去.
读进来: 进来强调了是输入, 读说明是read方法.
写出去: 出去强调了是输出,写说明是write方法.
文件流的操作:
FileInputStream: 文件的字节输入流
FileOutputStream: 文件的字节输出流
FileReader: 文件的字符输入流
FileWriter: 文件的字符输出流
附上复制以及输入的练习代码:
package copy;
import java.io.File;
public class CopyFile {
public static void main(String[] args) {
File sourceFile=null;
File desFile=null;
String sourceFolder="D://test";
String copyFolder="D://copy";
sourceFile =new File(sourceFolder);
if (!sourceFile.isDirectory()) {
System.out.println("源文件夹不存在");
}else {
desFile =new File(copyFolder);
desFile.mkdir();
copy(sourceFile.listFiles(),desFile);
System.out.println("文件复制成功");
}
}
private static void copy(File[] f1, File file) {
if (!file.exists()) {
file.mkdir();
}
for (int i = 0; i < f1.length; i++) {
if (f1[i].isFile()) {
try {
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
}
package com.input;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/**
* 读取文件内容
* @author YDLin
* @date 2020年1月9日2020年1月9日
* @Description
*/
public class TestInputStream {
public static void main(String[] args) throws IOException {
/**读取文件的步骤
* 1、根据文件的路径名称先把文件转成流
* 2、进行读\写操作
* 3、关闭输入\输出流
*/
//先创建一个输入流 (InputStream(字节),Reader(字符))
InputStream input=null;
StringBuffer sb=new StringBuffer();
try {
input=new FileInputStream("D:\\file.txt");
//2、从流中读取数据(每次从流中读取指定长度的字节数,然后保存在字节中转站中)
//System.out.println(input.available());
byte[] len=new byte[1024];
//返回值为-1表示单签没有读取到数据,表示已经读完了
while (input.read(len)!=-1) {
//每读取到的数据都必须处理,从数组中挪走
String message=new String(len,"utf-8");
sb.append(message);
}
System.out.println(sb.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (input!=null) {
input.close();
}
}
}
}
相关文章
- Java 8 新特性-菜鸟教程 (5) -Java 8 Stream
- Java IO 之 OutputStream源码
- 《 Java并发编程从入门到精通》目录和序言
- Java Invoked OOM-Killer - OOM不一定是来自于java heap
- java 缩略图
- JAVA基础--Java枚举+位操作,巧妙判断是否设置
- Ubuntu安装java的几种方式以及多个JAVA版本的切换
- Java高并发编程基础三大利器 - Semaphore
- 《Java遗传算法编程》—— 1.10 终止
- 《Java遗传算法编程》—— 1.12 参考文献
- 《Java 2D游戏编程入门》—— 第1章 Hello World
- 《Java 2D游戏编程入门》—— 2.2 键盘改进
- 《Java EE 7精粹》—— 3.4 请求处理生命周期阶段
- Java编程性能优化技巧有哪些
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
- 几种任务调度的 Java 实现方法与比较
- java 字节流和字符流
- Java——ThreadLocal的使用
- Java编程常用数据转换:String与int互转、Date与String互转、BigDecimal与int比较(报错operator > cannot be applied to java.math.BigDecimal,int)
- [记录]java.math.biginteger cannot be cast to java.lang.long
- java从mysql导出数据例子
- Java语言面向对象三大核心特性之【继承】
- 华为OD机试 -找车位(Java) | 机试题+算法思路+考点+代码解析 【2023】
- Java并发编程(八)同步容器
- JAVA 并发编程-线程范围内共享变量(五)
- 2014-5-22 java.lang.OutOfMemoryError: Java heap space的一次诊断
- java核心编程——IO流
- java核心编程(集合、io、反射等)
- Java内存模型JMM--高并发编程
- 【JAVA】浅谈java枚举类
- 解决Java使用response下载文件报错,并总结可能出错的原因: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。