1.File 类会对磁盘进行写操作的方法有哪些
delete() renameTo() mkdirs()
2.获取E盘下(E:/etoak/img/et2206/Jaay.png)的Jay.png文件的最后的修改时间并格式化为 年月日 时分秒
File f = new File("E://etoak//img//Jay.png");
long time = f.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String t = sdf.format(time);
System.out.println(t);
3.请写出递归遍历c:\所有.java文件的核心代码?
File f = new File("c:\\");
kill(f);
public static void kill(File f){
File[] dir = f.listFiles((x) -> x.isDirectory());
File[] fil = f.listFiles((x) -> x.isFile() && x.getName().toLowerCase().endsWith(".java"));
if(dir == null)return;
for(File x : dir){
kill(x);
}
for(File y : fil){
System.out.println(y);
}
}
4.能直接连接文件的流有哪些
FileInputStream FileOutputStream FileReader FileWriter printWriter printStream
5.Java中如何解析时间
1.java.util.Date
getYear()+1900 getMouth() getDate() getHours() getMinutes() getSeconds()
2.java.util.Calendar
获得实例:getInstance()
设置时间:setTimeInMillis()
获得数据:get(x) 1 2+1 5 11 12 13 7-1
3:java.text.SimpleDataFormat
format():从long毫秒数 - 字符串
parse() + getTime() :从字符串 - long毫秒数
6.请将 “a.txt” 文件最后修改时间改为三天前
File f = new File("a.txt");
long time = f.lastModified();
long threeDay = 1000L*60*60*24*3;
f.setLastModified(time - threeDay);
7.请将字符串 String str = "2022-07-29 15:29"转换成时间戳(毫秒数)
String str = "2202-07-29 15:29";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
long time = sdf.parse(str).getTime();
8.请使用TWR语法完成文件复制 源文件(six.mp4) 目标文件(666.mp4)
try(FileInputStream fis = new FileInputStream("six.mp4");
FileOutputStream fos = new FileOutputStream("666.mp4")){
byte[] data = new byte[2 << 10];
int len;
while((len = fis.read(data))!=-1){
fos.write(data,0,len);
}
}catch(Exception e){
e.printStackTrace();
}
9.EOFException 是什么异常 什么情况下会触发这异常
运行时异常 EndOfFile 读到文件结尾 还继续读取时报的异常
10.ObjectOutputStream 的核心方法是什么? 用它需要注意些什么?
writeObject(); 需要序列化写入的对象
11.InvalidClassException 在什么情况下会出现
类写出后读出前被修改 导致序列化唯一版本号不一致从而产生异常
12.BufferedInputStream 传的第二个参数是什么含义
指定缓存空间大小
13.复制文件的时候 复制后的文件比复制前大 是什么原因
没有使用三个参数的write()
没有关注本次实际读到多少字节而直接将整个数组都写出去了
14.使用带有缓冲区的输出流要注意清空 那么缓冲区在什么情况下会清空
满时自动清空
flush();
close();
15.现有文件focus.txt 请写出以一行为单位读取它内容的代码
try(BufferedReader br = new BufferedReader(new FileReader("focus.txt"))){
String str;
while((str = br.readLine())!=null){
br.readLine();
}
}catch(Exception e){
e.printStackTrace();
}
16.请将《观沧海》写出到文件etoak.txt当中 要求etoak.txt 使用utf-8编码
PrintWriter pr = new PrintWriter("etoak.txt","utf-8");
pr.println("观沧海");
pr.close();
17.PrintWriter pw = new PrintWriter(new FileWriter("a.txt",true),true)请解释上述代码当中两个true的含义是什么
内层的是追加模式 外层的是自动清空缓存区
18.File类的特等优先级方法有哪些
File[] listRoots();
String[] list();
File[] listFiles();
19.请写出两种最常用的字符流 并写出它们的核心方法
BufferedReader String str = br.readLine();
PrintWriter println();
20.请将http://www.etoak.com/ET2206.png 下载到本地并且命名为etoak2206.png
import java.net.*;
import java.io.*;
//URL => 统一资源定位符 => 网址
public class TestURL{
public static void main(String[] args)throws Exception{
URL url = new URL("http://old.etoak.com/assets/images/zkcs.png");
URLConnection uc = url.openConnection();
InputStream is = uc.getInputStream();
FileOutputStream fos = new FileOutputStream("jay.png");
byte[] data = new byte[65536];
int len;
while((len = is.read(data))!=-1){
fos.write(data,0,len);
}
fos.close();
is.close();
}
}
21.获取“Jay.png”的大小 和绝对路径
File f = new File("Jay.png");
String ap = f.getAbsolutePath();
long l = f.length();
System.out.println(ap);
System.out.println(l);
22.如何获得指定盘符下的所有目录及文件
File f = new File("需要的盘符");
public static void kill(File f)throws Exception{
File[] dir = f.listFiles((x) -> x.isFirectory());
FIle[] fil = f.listFiles((x) -> x.isFile());
if(dir == null) return;
for(File x : dir){
kill(x);
}
for(File y : fil){
System.out.println(y);
}
}
23.方法delete() 什么情况下会删除失败
被别的进程占用时 试图删除不为空的文件夹时 删除对象不存在时
24.请将字符串String str = "2021-11-19 14:59"转换成时间戳(毫秒数)
String str = "2021-11-19 14:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm");
long time = sdf.parse(str).getTime();
25.三种解析时间戳的方式
1.java.util.Date.*;
getYear(); getMouth(); getDate(); getHours(); getMinutes(); getSeconds();
2.java.util.Calender.*;
static getInstance();
setTimeMillis();
3.java.text.*;
new SimpleDateFormat (); format(); parse() + getTime();
26.请写出三种字节过滤流 并写出其作用
DataInputStream 添加读取基本数据类型的功能
ObjectInputStream 添加读取对象的功能
BufferedInputStream 添加缓冲空间 提高读取效率
27.复制文件的时候 如果目标文件和源文件相比变小了 通常是为什么?
使用了带缓冲区的输出流 但是没有及时清空缓冲 最后一组数据滞留在缓冲空间
28.请使用TWR格式 完成“复仇者联盟.mp4”复制为“复仇者联盟4.mp4”
import java.io.*;
public class A{
public static void main(String[] args)throws Exception{
try(BufferedInputStream bis = new BufferedInputStream(new FileInputStream("春.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("春2.txt"))){
byte[] data = new byte[2 << 10];
int len;
while((len = bis.read(data))!=-1){
bos.write(data,0,len);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
29.BufferedeInputStream的第二个参数是什么类型 什么含义
int 定义缓冲区大小