作者:9baibai_555 | 来源:互联网 | 2023-08-20 23:13
createFile
1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败
2、File类的mkdir方法根据抽象路径创建目录
3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录
4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。
5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败
五、获取File文件的路径
getPath()返回的是File构造方法里的路径,不做任何处理
getAbsolutePath()返回的是 user.dir+getPath(),也就是执行路径(默认保存的路径:比如说在C;//中)加上File构造方法中的路径
getCanonicalPath()返回的是将符号完全解析的路径,也就是全路径
所以:推荐使用getCanonicalPath()
六、重要的IO流
ByteArrayInputStream: 从byte[] bytes中读取 bytes文件中的字节。
例:
byte [] bytes = new byte[1024];
String str = "hello world";
bytes = str.getBytes();
//创建byte流输出
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
int b = -1;
while((b = bais.read()) != -1){
System.out.print(b + " ");
}
System.out.println("");
//for循环输出
for(int i=0; i bytes.length; ++i){
System.out.print(bytes[i]+" ");
}
使用ByteArrayInputStream的优点:可以套接其他流的装饰类
ByteArrayOutputStream:将文件以字节的方式写入内存的缓冲区。 然后再将byte提取出来。
例:
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("test");
try {
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int b = 0;
while((b = fis.read()) != -1){
baos.write(b);
}
byte [] bytes = new byte[1024];
bytes = baos.toByteArray();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DataInputStream: 从文件中读取基础类型。 我们一般都是从流中读取字节然后在转化成String类型,DataInputStream可以直接读取字节并转化成int 、char等基础类型。(感觉要与DataOutputStream配套使用才有效果) 提供 readInt()、readUTF8()等方法
DataOutputStream:将基础类型输出到文件中。提供writeInt()、writeUTF8()等方法。
例: