File类和IO类题目:
以下所有题目代码均是在main方法里调用实现:
public static void main(String[] args) throws IOException {
// work1();
// work2();
// work3();
// work4();
// work6();
// work5();
// work7();
// work9();
// work10();
// work11();
// work12();
}
- 在指定的路径下新建一个 .txt 文件 “test.txt”,利用程序在文件中写入如下内容:
“Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于 1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有 卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科 学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互 联网的产业环境下,Java更具备了显著优势和广阔前景。”
private static void work1() throws IOException {
/**要求:
//创建文件
File file = new File("test.txt");
file.createNewFile();
//写入数据
FileWriter fwriter = new FileWriter(file);
fwriter.write("Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.....");
fwriter.close();
}
2.利用程序读取 test.txt 文件的内容, 并在控制台打印
private static void work2() throws IOException {
/**
* 2.利用程序读取 test.txt 文件的内容, 并在控制台打印
*/
FileReader reader = new FileReader("test.txt");
//采用数组来缓冲
char[] c =new char[100];
int len ;
while ((len=reader.read(c))!=-1){
//遍历数组
for (int i=0;i<len;i++) {
System.out.print(c[i]);
}
}
3.利用程序复制 test.txt 为 test1.txt
private static void work3() throws IOException {
/*
3.利用程序复制 test.txt 为 test1.txt
因为文件类型是文本文档,所以选择字符流
*/
File file = new File("test.txt");
FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter("test1.txt");
int len;
char[] chars = new char[10];
while((len = fr.read(chars)) != -1){
fw.write(chars, 0, len);
}
fr.close();
fw.close();
}
4.列出当前目录下全部java文件的名称
private static void work4() {
/**
* 4.列出当前目录下全部java文件的名称
* 考点:
* 1.File的list/listFile方法
* 2.过滤器FilenameFilter/Filefilter
*/
File file = new File("D:\\AAtemp");
String[] filenames = file.list(new FilenameFilter() {
@Override
//accept会对文件夹的每一个子文件夹进行检测
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
});
for (String f :filenames)
System.out.println(f);
}
5.列出workspace目录下.class的名字及其大小,并删除其中的一个?
private static void work5() {
//列出workspace目录下.class的名字及其大小,并删除其中的一个?
File file = new File("C:\\Test");
File file2 = new File("C:\\Test\\WiFi_Log.txt");
File[] file1 = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
file2.delete();
for (File l : file1) {
System.out.println(l);
}
}
6.使用File类下的常用方法获取某些文件的信息
private static void work6() {
/**
* 6.使用File类下的常用方法获取某些文件的信息
* 常用方法:getName;getAbsolutePath,getPath.lenth.isFile,isDirectory
*/
File file = new File("test.txt");
file.getAbsolutePath();
}
- 操作D盘下的my.txt文件
判断my.txt文件是否存在
若存在则删除;若不存在则创建
private static void work7() {
/**
* 7. 操作D盘下的my.txt文件
* 1) 判断my.txt文件是否存在
* 2) 若存在则删除;若不存在则创建
* 考点:boolean exist(),delete(),mkdir()
*/
File file = new File("D:\\AAAA");
if(file.exists()){
file.delete();
}else {
file.mkdir();
}
}
- 使用File类删除某个文件夹(例如D盘下的temp文件夹)下的所有文件和文件夹:
1) 判断temp文件夹下的文件类型,如果是文件则直接删除
2) 如果是文件夹则获取该文件夹下的子文件和文件夹
3) 使用递归的方式删除所有temp文件夹下的文件和文件夹
private static void work9() {
/*
9. 使用File类删除某个文件夹(例如D盘下的temp文件夹)下的所有文件和文件夹:
1) 判断temp文件夹下的文件类型,如果是文件则直接删除
2) 如果是文件夹则获取该文件夹下的子文件和文件夹
3) 使用递归的方式删除所有temp文件夹下的文件和文件夹
*/
File file9 = new File("C:\\Test");
myDelete(file9);
}
private static void myDelete(File file9) {
if (file9.isFile()){
file9.delete();
}else{
File[] f9 = file9.listFiles();
for (File f:f9){
myDelete(f);
}
file9.delete();
}
}
10.利用IO操作文件
1)利用代码在D盘下创建news文件夹。
2)利用代码在news文件夹下创建2个.docx文件,2个.java文件,2个.txt的文件(在控制台打印news文件夹下的.java文件
private static void work10() {
/**
* 利用IO操作文件
* 1)利用代码在D盘下创建news文件夹。
* 2)利用代码在news文件夹下创建2个.docx文件,2个.java文件
* 2个.txt的文件(在控制台打印news文件夹下的.java文件
*/
try {
File file1 = new File("D:\\ATest\\test1.docx");
File file2 = new File("D:\\ATest\\test2.docx");
File file3 = new File("D:\\ATest\\test1.java");
File file4 = new File("D:\\ATest\\test2.java");
if(!file1.getParentFile().exists()){
file1.getParentFile().mkdirs();
System.out.println("文件夹创建成功!");
}
if(!file1.exists()){
file1.createNewFile();
System.out.println("文件1创建成功!");
}
if(!file2.exists()){
file2.createNewFile();
System.out.println("文件2创建成功!");
} if(!file3.exists()){
file3.createNewFile();
System.out.println("文件3创建成功!");
}
if(!file4.exists()){
file4.createNewFile();
System.out.println("文件4创建成功!");
}
} catch (IOException e) {
// TODO
e.printStackTrace();
}
//遍历文件夹
// File file10 = new File("D:\\Test");
// myFilelist(file10);
}
- 利用IO流操作文件
1)利用Java代码创建D:\temp\temp1\temp2共3个文件夹2)在temp文件夹下创建一个1.txt文件内容为hello,创建一个Hello.java文件
3)内容为public static void main(String[] args){},在temp1文件夹下创建同样的两个文件
4)输出temp文件夹下包括其子文件夹下,所有的.java文件
private static void work11() throws IOException {
File file1 = new File("D:\\AAtemp\\temp1\\temp2");
File file2 = new File("D:\\AAtemp\\1.txt");
File file3 = new File("D:\\AAtemp\\hello.java");
File file4 = new File("D:\\AAtemp\\temp1\\1.txt");
File file5 = new File("D:\\AAtemp\\temp1\\hello.java");
//创建文件夹及文件
try {
if(!file1.getParentFile().exists()) {
file1.getParentFile().mkdirs();
System.out.println("D:\\AAtemp\\temp1\\temp2!");
}
if(!file2.getParentFile().exists()){
file2.getParentFile().mkdirs();
System.out.println("D:\\AAtemp");
}
if(!file2.exists()){
file2.createNewFile();
System.out.println("D:\\AAtemp\\1.txt创建成功!");
}
if(!file3.exists()){
file3.createNewFile();
System.out.println("D:\\AAtemp\\hello.java创建成功!");
}
if(!file4.exists()){
file4.createNewFile();
System.out.println("D:\\AAtemp\\temp1\\1.txt!");
}
if(!file5.exists()){
file5.createNewFile();
System.out.println("D:\\AAtemp\\temp1\\hello.java创建成功!");
}
} catch (IOException e) {
// TODO
e.printStackTrace();
}
//添加file2数据进文件
String str= "Hello今夜夜晚依旧美丽!";
char[] chars = str.toCharArray();
//字符流写入数据
FileWriter writer = new FileWriter(file2);
writer.write(chars);
System.out.println("file2数据进文件了");
writer.close();
//添加file3数据进文件
String str1= "public static void main(String[] args){}";
char[] chars1 = str1.toCharArray();
//字符流写入数据
FileWriter writer1 = new FileWriter(file3);
writer1.write(chars);
System.out.println("file3数据进文件了");
writer.close();
}
- 利用IO流操作文件
利用java代码在D盘下创建一个mytemp文件夹
显示D盘下所有的.Java文件,包括D盘的子文件夹下的.java文件
把上述显示的文件都复制到mytemp文件夹中
private static void work12() throws IOException {
/**
* 12. 利用IO流操作文件
* 1) 利用java代码在D盘下创建一个mytemp文件夹 :mkdir
* 2) 显示D盘下所有的.Java文件,包括D盘的子文件夹下的.java文件 :递归
* 3) 把上述显示的文件都复制到mytemp文件夹中 :读写
*/
File file = new File("D:\\AAtemp");
if(!file.exists()){
file.mkdir();
}
myList(file);
}
private static void myList(File file) {
File[] files = file.listFiles();
for (File f:files){
if(f.isFile()&&f.getName().endsWith(".java")){
try {
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream("D:\\AAAA\\"+f.getName());
System.out.println("递归!");
byte[] b = new byte[20];
int len;
System.out.println("开始循环!");
while ((len = fis.read(b)) != -1) {
fos.write(b, 0, len);
}
System.out.println(f);
}catch (IOException e){
e.printStackTrace();
}
}else if(f.isDirectory()){
myList(f);
}
}
}
13.列出D盘下的所有文件,子目录中的文件,子目录的子目录都要列出,依次类推,总之D盘下所有的文件都要输出(50分)
在列出的时候判断是否子文件夹(10分)
若不是子文件夹直接输出文件名(20分)
若是子文件夹使用递归的形式继续输出子目录中的文件(20分)
!以上题目已覆盖
- 先将“欢迎您来您学习,高薪就业”写入到文件”hello.txt”中,再读取该文件中的内容。
!以上题目已覆盖
小白初学,如有问题请多指教!