代码中有注释可以查看
文件操作
package com.biu.demo02IO;
import java.io.File;
import java.io.IOException;
//文件操作:创建文件、查看文件相关信息、删除文件
public class FileDemo {
public static void main(String[] args) {
FileDemo fileDemo = new FileDemo();
File file = new File("d:/test.txt");
//File file = new File("test.txt");//如果没有给出绝对路径,则会在此项目下创建。
fileDemo.create(file);
fileDemo.showFileInfo(file);
//fileDemo.delete(file);
}
//创建文件
public void create(File file) {
if(!file.exists()) {
try {
file.createNewFile();//创建文件,不创建文件夹
System.out.println("文件已经创建。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
//查看文件相关信息
public void showFileInfo(File file) {
if(file.exists()) {
//如果文件存在,则查看文件信息
if(file.isFile()) {
//是文件
System.out.println("该文件是:" + file.getName());
System.out.println("该文件的相对路径是:" + file.getPath());
System.out.println("该文件的绝对路径是:" + file.getAbsolutePath());
System.out.println("该文件的文件大小是:" + file.length() + "字节");//一个汉字俩字节
}else if (file.isDirectory()) {
System.out.println("此文件是目录。");
}
}else {
System.out.println("文件不存在。");
}
}
//删除文件
public void delete(File file) {
if(file.exists()) {
file.delete();
System.out.println("文件已经删除。");
}
}
}
输入流
package com.biu.demo02IO;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//读取文件d:\test.txt中的内容
public class FileInputStreamDemo {
public static void main(String[] args) {
FileInputStream fis = null;
try {
//输入流FileInputStream
fis = new FileInputStream("d:/test.txt");
System.out.println("可以读取到的字节数是:" + fis.available());
//借助输入流的方法read()去读文件
// int data;
// while ((data=fis.read()) != -1) {
// System.out.print((char)data);//需要将整数强转为字符
// }
byte[] b = new byte[1024];
int data;
while ((data=fis.read(b)) != -1) {
// for(int i=0; i<b.length; i++) {
// if(b[i]!=0) {
// System.out.print((char)b[i]);
// }
// }
for(int i=0; i<data;i++) {//此时data为已经读取的字节数,可以以此作为长度
System.out.print((char)b[i]);//仍需要强转为字符型
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭输入流
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
输出流
package com.biu.demo02IO;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//对文件d:\test.txt进行写入
public class FileOutputStreamDemo {
public static void main(String[] args) {
FileOutputStream fos = null;
try {
//输出流FileOutputStream
fos = new FileOutputStream("d:/test.txt");
String str = "FileOutputStreamDemo";
//将字符串打散为一个字节数组
byte[] words = str.getBytes();
fos.write(words, 0, words.length);
System.out.println("文件已被写入");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭输入流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
输入输出复制小案例
package com.biu.demo02IO;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
//将d:\hi.txt中的内容复制到d:\hello.txt中
public class InputAndOutputDemo {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("d:/hi.txt");
fos = new FileOutputStream("d:\\hello.txt", true);
byte[] words = new byte[1024];
int len = -1;
while ((len = fis.read(words)) != -1) {
fos.write(words, 0, len);
}
System.out.println("文件复制完成。");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}