一、已知文件的路径为c:\mygames.txt,要求得到:
1.是否存在
2.取得文件名
3.取得文件路径
4.得到绝对路径名
5.得到父文件夹名
6.判断文件是否存在
7.判断文件是否可写
8.判断文件是否可读
9.判断是否是目录
10.判断是否是文件
11.是否是绝对路径名称
12.文件最后的修改时间
13.文件的大小
package Homework;
import java.io.File;
public class FileInformationDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("c:\\mygames.txt");
System.out.println("是否存在:" +file.exists());//判断文件是否存在
System.out.println("文件名:" +file.getName());//获取文件名
System.out.println("文件路径:" +file.getPath());//获取文件路径
System.out.println("绝对路径:" +file.getAbsolutePath());//获取绝对路径
System.out.println("父文件名:" +file.getParent());//获取父文件名
System.out.println("是否可写:" +file.canWrite());//判断是否可写
System.out.println("是否可读:" +file.canRead());//判断是否可读
System.out.println("是否是目录:" +file.isDirectory());//判断是否是目录
System.out.println("是否是文件:" +file.isFile());//判断是否是文件
System.out.println("是否是绝对路径名称:" +file.isAbsolute());//判断是否是绝对路径名称
System.out.println("最后修改时间:" +file.lastModified());//最后修改时间
System.out.println("文件大小:" +file.length());//文件大小
}
}
二、
1.在本地磁盘D盘中创建一个iotest文件夹
2.在文件夹中创建一个以自己名字的拼音组成的文件名
3.获取创建的这个文件的最后修改日期并打印到控制台
4.将创建的这些文件和文件夹全部删除。
package Homework;
import java.io.File;
import java.io.IOException;
public class FileCreateDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("D:\\iotest");
File NameFile = new File("D:\\iotest\\xxx.txt");
try {
NameFile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(NameFile.getName() + "最后的修改日期为:" + NameFile.lastModified());
NameFile.delete();
file.delete();
System.out.println("文件夹是否存在:" + file.exists());
System.out.println("文件是否存在" + NameFile.exists());
}
}
三、
1.在本地磁盘上,选择某个有内容的txt文件,将文件 名修改为test.txt
2.计算修改名字后的文件的大小,文件的最后修改日 期、文件的名称及文件的父级目录,将这些信息打印到控制台
3.删除这个文件
package Homework;
import java.io.File;
import java.io.IOException;
public class FileChangeNameDemo {
public static void main(String[] args) {
File file = new File("D:\\liwenbo.txt");
File newname = new File("D:\\li.txt");
file.renameTo( newname);
System.out.println("文件名:" + newname.getName());
System.out.println("文件大小:" + newname.length());
System.out.println("最后修改日期:" + newname.lastModified());
System.out.println("父级目录:" + newname.getParent());
newname.delete();
//fatherfile.delete();
}
}
四、字节流。
1.已知电脑D盘有iotest文件夹[没有的话自己手动建一个]在里面新建一个Stream.txt文件
2.用输出流FileOutputStream向Stream.txt文件中写入"I love you!"
3.用输入流FileInputStream读取获Stream.txt这个文件内容并打印到控制台
package Homework;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileStreamDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("D:\\iotest\\Stream.txt");
output(file);
input(file);
}
public static void output(File filename) {
try(OutputStream file = new FileOutputStream(filename)){
String data = "I love you";
byte[] buf = data.getBytes();
file.write(buf, 0, buf.length); // 指定开始的索引值与字节个数写出。
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void input(File filename) {
try(InputStream input = new FileInputStream(filename)){//字节输入流,并不涉及编码及解码
int len = -1;
byte[] buffer = new byte[10];
while((len = input.read(buffer)) != -1) {
System.out.println(new String(buffer,0,len,"GBK"));
}
}catch (IOException e) {
e.printStackTrace();
}
}
}
五、字符流
1.已知电脑D盘有iotest2文件夹[没有的话自己手动建一个]在里面新建一个Stream.txt文件
2.用输出流FileWriter 向Stream.txt文件中写入"I love you!"
3.用输入流FileReader 读取获Stream.txt这个文件内容并打印到控制台4.用FileWriter和FileReader完成文件的复制[把Stream.txt复制到C盘的根目录下
package Homework;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Scanner;
public class FileReaderWriterDemo {
public static void main(String[] args) {
File file = new File("D:\\iotest\\Stream.txt");
File newfile = new File("F:\\Stream.txt");
output(file);
input(file);
copyfile(file,newfile);
}
public static void output(File file) {
try(Writer output = new FileWriter(file)){
output.write("I love you");
} catch (IOException e1) {
e1.printStackTrace();
}
}
public static void input(File file) {
try(Reader input = new FileReader(file)){
int len = -1;
while((len = input.read()) != -1) {
System.out.print((char)len);
}
}catch (Exception e) {
e.printStackTrace();
}
}
public static void copyfile(File src,File dst) {
int len = -1;
try(Writer output = new FileWriter(dst);
Reader input = new FileReader(src)){
while((len = input.read())!=-1) {
output.write(len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
六、缓冲字符流
1.已知电脑D盘有iotest3文件夹在里面新建一个Stream.txt文件
2.用输出流BufferedWriter 向Stream.txt文件中写入"我叫XXX,性别:男,出生年月:XXXXX’’"
3.用输入流BufferdeReader 读取获Stream.txt这个文件内容并打印到控制台
4.用BufferedWriter 和BufferdeReader 完成文件的复制
package Homework;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferdeStream {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("D:\\iotest3\\Stream.txt");
File newfile = new File("D:\\iotest2\\Stream.txt");
output(file);
input(file);
copyfile(file,newfile);
}
public static void output(File file) {
try(BufferedWriter output= new BufferedWriter(new FileWriter(file))){
String str = "xxx,性别:男,出生年月xxxx年xx月";
output.write(str);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void input(File file) {
try(BufferedReader input = new BufferedReader(new FileReader(file))){
String line = null;
while((line = input.readLine()) != null) {
System.out.println(line);
}
}catch (Exception e) {
e.printStackTrace();
}
}
public static void copyfile(File src , File dest) {
try(BufferedWriter output= new BufferedWriter(new FileWriter(src));
BufferedReader input = new BufferedReader(new FileReader(dest))){
String len = null;
byte[] buff = new byte[1024];
while((len = input.readLine()) != null) {
output.write(len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
七、在C:下创建一个名为Letter的目录,用BufferedReader/BufferedWriter编写一个程序来显示下列选项:
1:撰写请假条
2:查看请假条
根据用户的选择执行以下操作。
如果所选的选项是“撰写请假条”,则应显示下列选项。
1、病假
2、事假
根据用户的选择,在所创建的当前工程Letter目录下创建一个名为Letter.txt的文件,其内容如下:
请假人 用户输入
请假日期 用户输入
正文【写死】
病假 我因发烧,请假一天
事假 参见婚礼,于6.10请假一天
package Homework;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public abstract class Leave {
private File file ;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public Leave(File file) {
this.file = file;
}
/**
* 查看请假条
*/
public void fileReader() {
try(BufferedReader readfile = new BufferedReader(new FileReader(this.file))){
String line = null;
while((line = readfile.readLine()) != null) {//一次读取一行,返回读取到的内容,文件末尾返回null
System.out.println(line);
}
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 撰写请假条
*/
public void fileWriter() {
try(BufferedWriter writefile = new BufferedWriter(new FileWriter(this.file))){
Scanner input = new Scanner(System.in);
System.out.println("请输入姓名:");
writefile.write("请假人:" + input.next() + "\r\n");
System.out.println("请输入日期:");
writefile.write("请假日期:" + input.next()+ "\r\n");
//writefile.write("事假 参见婚礼,于6.10请假一天"+ "\r\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package Homework;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Ill extends Leave {
public Ill(File file) {
super(file);
}
public void writetext() {
try(BufferedWriter writefile = new BufferedWriter(new FileWriter(this.getFile(),true))){
writefile.write("病假 我因发烧,请假一天"+ "\r\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package Homework;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Trouble extends Leave {
public Trouble(File file) {
super(file);
}
public void writetext() {
try(BufferedWriter writefile = new BufferedWriter(new FileWriter(this.getFile(),true))){
writefile.write("事假 参见婚礼,于6.10请假一天"+ "\r\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package Homework;
import java.io.File;
import java.util.Scanner;
public class LeaveDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\Letter\\Letter.txt");
Scanner input = new Scanner(System.in);
System.out.println("请选择请假类别:\n1、病假\n2、事假");
int kind = input.nextInt();
if(kind == 1) {
Ill ill = new Ill(file);
ill.fileWriter();
ill.writetext();
ill.fileReader();
}
else if(kind == 2) {
Trouble trouble = new Trouble(file);
trouble.fileWriter();
trouble.writetext();
trouble.fileReader();
}
}
}