1、在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:
路径是xxx的文件夹内的文件有:
文件名:abc.txt
路径名:d:\temp\abc.txt
--------------------------------------------
文件名:def.txt
路径名:d:\temp\def.txt
public class test {
public static void main(String[] args) {
File file1 = new File("d:/temp/abc.txt");
if(file1.exists()) {
System.out.println("文件已存在");
}else {
try {
System.out.println("创建成功:"+file1.createNewFile());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
File file2 = new File("d:/temp/def.txt");
if(file2.exists()) {
System.out.println("文件已存在");
}else {
try {
System.out.println("创建成功:"+file2.createNewFile());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
File file = new File("d:/temp");
printFile(file);
}
public static void printFile(File file) {
System.out.println("路径是d:/temp的文件夹内的文件有:");
File[] fileList = file.listFiles();
for (File f : fileList) {
System.out.println("文件名:"+f.getName());
System.out.println("路径名:"+f.getAbsolutePath());
}
}
}
改进版:输出该目录下的所有内容,包括子目录中的内容
public class test2 {
public static void main(String[] args) {
File file1 = new File("d:/temp/abc.txt");
if(file1.exists()) {
System.out.println("文件已存在");
}else {
try {
System.out.println("创建成功:"+file1.createNewFile());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
File file2 = new File("d:/temp/def.txt");
if(file2.exists()) {
System.out.println("文件已存在");
}else {
try {
System.out.println("创建成功:"+file2.createNewFile());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
File file = new File("d:/temp");
printFile(file);
}
public static void printFile(File file) {
System.out.println("路径是d:/temp的文件夹内的文件有:");
File[] fileList = file.listFiles();
for (File f : fileList) {
System.out.println("文件名:"+f.getName());
System.out.println("路径名:"+f.getAbsolutePath());
System.out.println("是否文件夹:"+f.isDirectory());//判断是否为文件夹
//如果为文件夹,输出文件夹中的内容
if(f.isDirectory()) {
printFile(f);
}
}
}
}
结果:
2、创建c:/test.txt文件并在其中输入"hello world"
创建一个输入流读取该文件中的文本
并且把小写的l变成大写L再利用输出流写入到d:\test.txt中
3.1 实现步骤:
3.1.1 在本地硬盘C盘下创建一个文件test.txt
3.1.2 创建一个包含main()方法的类,并在main中编写代码
3.1.3 运行代码并且测试结果
3.2 实现过滤器的功能
public static void main(String[] args) {
FileReader reader = null;
FileWriter writer = null;
try {
reader = new FileReader("c:/test.txt");
writer = new FileWriter("d:/test.txt");
char[] c = new char[3];
int length;
while((length=reader.read(c))!=-1) {
System.out.println(length+Arrays.toString(c));
c = new String(c).replace("l","L").toCharArray();
writer.write(c,0,length);
}
writer.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
结果:
3、在程序中创建一个Student类型的对象,并把对象信息保存到
d:/io/student.txt文件中,然后再从文件中把Student
对象的信息读出显示在控制台上,Student类的描述如下:
//创建Student类实现可用于序列化操作的Serializable接口
public class Student implements Serializable{
private int id;
private String name;
private String birth;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int id, String name, String birth) {
super();
this.id = id;
this.name = name;
this.birth = birth;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", birth=" + birth + "]";
}
}
public class test {
public static void main(String[] args) {
Serialization();
deSerialization();
}
public static void Serialization() {
ObjectOutputStream output = null;
try {
Student stu = new Student(1,"小明","2000年1月1号");
FileOutputStream out = new FileOutputStream("d:/io/student.txt");
output = new ObjectOutputStream(out);
output.writeObject(stu);
output.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(output!=null) {
output.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void deSerialization() {
ObjectInputStream input = null;
try {
FileInputStream in = new FileInputStream("d:/io/student.txt");
input =new ObjectInputStream(in);
Student stu = (Student) input.readObject();
System.out.println(stu.toString());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(input!=null) {
input.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
结果:
4、编写一个java程序实现文件复制功能,要求将d:/io/copysrc.doc中的内容复制到d:/io/copydes.doc中。
public class BufferedTest {
public static void main(String[] args) {
BufferedReader reader = null;
BufferedWriter writer = null;
try {
FileReader r = new FileReader("d:/io/copysrc.doc");
reader = new BufferedReader(r);
FileWriter w = new FileWriter("d:/io/copydes.doc");
writer = new BufferedWriter(w);
String length = "";
while((length=reader.readLine())!=null) {
System.out.println(length);
writer.write(length);
writer.newLine();
}
writer.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(reader!=null) {
reader.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(writer!=null) {
writer.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
有任何问题,欢迎随时与我讨论交流!