创建文件
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class IOText01 {
public static void main(String[] args) throws IOException {
// 创建对象
File file = new File("test.txt");
// 创建文件
creat(file);
// 显示信息
show(file);
// 删除信息
del(file);
}
// 删文件
public static void del(File file) {
if (file.exists()) {
file.delete();
System.out.println("删除成功");
}
if (!file.exists()) {
System.out.println("文件没有");
} else {
System.out.println("文件存在");
}
}
// 创建文件
public static void creat(File file) throws IOException {
if (!file.exists()) {
file.createNewFile();
}
}
// 展示文件的相关属性
public static void show(File file) {
// 文件名
System.out.println("文件名:" + file.getName());
// 文件大小
System.out.println("文件大小:" + file.length());
// 文件相对路径
System.out.println("文件相对路径:" + file.getPath());
// 文件绝对路径
System.out.println("文件绝对路径:" + file.getAbsolutePath());
// 文件类型
if (file.isFile()) {
System.out.println("是文件");
} else {
System.out.println("是目录");
}
// 文件最后的修改日期
Date date = new Date(file.lastModified());
System.out.println("文件日期:" + date.toLocaleString());
}
}
写入信息,读取信息,复制文件
package zuoye0424;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class zuoye01 {
/*
*
* 创建一个文件在c盘,手动输入相关信息,复制1号文件形成2号文件,并且显示复制后的内容和长度
*
*/
public static void main(String[] args) throws IOException {
// 写1号文件
File file1 = new File("C:\\suorce.txt");// 创建文件suorce
if (!file1.exists()) {
file1.createNewFile();
}
FileOutputStream fos1 = new FileOutputStream(file1);// 创建写的对象
Scanner input = new Scanner(System.in);
System.out.println("请输入内容");
String s1 = input.next();
byte[] bytes1 = s1.getBytes();// 创建字节数组接收输入的内容(字符串形式的转化为字节形式)
int len1;
fos1.write(bytes1);
fos1.close();// 关闭写入流
// 复制1号文件成为2号文件
File files2 = new File("D:\\target.txt");
if (!files2.exists()) {
files2.createNewFile();
}
FileInputStream fis1 = new FileInputStream(file1);// 创建1号文件的读取对象
FileOutputStream fos2 = new FileOutputStream(files2);// 创建2号文件的写入对象
byte[] bytes2 = new byte[1024];// 创建字节数组接收
int len;
while ((len = fis1.read(bytes2)) != -1) {// 输入流,读入缓冲的字节总数,当全部读完时会返回一个int型-1,所以和常量-1进行判断
String s2 = new String(bytes2);// 将字节数组的变成字符串的形式,并且输出
System.out.println("初始文件的内容是:" + s2);
System.out.println("初始文件的长度是:" + len);
fos2.write(bytes2);// 读出1号文件的内容,于此同时将内容写进2号文件
}
fis1.close();// 关闭读取流
fos2.close();// 关闭写入流
// 读2号文件
FileInputStream fis2 = new FileInputStream(files2);
int len2;
while ((len2 = fis2.read(bytes2)) != -1) {
String s3 = new String(bytes2);
System.out.println("最终文件的内容是:" + s3);
System.out.println("最终文件的长度是:" + len2);
}
}
}
处理二进制文件
编写一个Java程序读取windows目录下的win.ini文件,并输出其内容
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class zuoye03 {
public static void main(String[] args) throws IOException {
File file1 = new File("C:\\Windows\\win.ini");
FileInputStream fis1 = new FileInputStream(file1);
DataInputStream dis = new DataInputStream(fis1);// 读
// 复制的文件
File file2 = new File("C:\\win2.ini");
FileOutputStream fos2 = new FileOutputStream(file2);
DataOutputStream dos2 = new DataOutputStream(fos2);// 写
int temp;//读和写的中转站
while ((temp = dis.read()) != -1) {
dos2.writeInt(temp);
}
dos2.close();
fos2.close();
dis.close();
fis1.close();
}
}