JavaCore File IO复习

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           定义缓冲区大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerry鹿17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值