
public class CreateFile {
public static void main(String[] args) {
/*
* 文件夹的创建和文件的生成
*/ File f1 = new File("E:\\study");
if (f1.exists()) {
System.out.println("该文件夹已经存在");
}else{
f1.mkdir();//创建文件夹(目录)创建单层目录
//f1.mkdirs();创建多层目录文件夹("e:/study/myfile")
}
File f2 = new File("e:\\study\\file.txt");
try {
f2.createNewFile();//创建指定路径下的文件 .txt
} catch (IOException e) {
e.printStackTrace();
} /*
* 用FileOutputStream输出流 通过字节数组 对文件添加内容
*/
try {
//创建一个文件输出流对象,对文件里面写内容
OutputStream fops = new FileOutputStream("e:\\study\\file.txt");
String stu = "我是美女!!!\r\n我的名字是娜娜";//\r\n实现输出换行
byte[] b= stu.getBytes();//得到字符串的字节数组 try {
fops.write(b, 0, b.length);//把字节数组写入文件
} catch (IOException e) {
e.printStackTrace();
}
try {
fops.close();//关闭文件输出流
} catch (IOException e) {
e.printStackTrace();
} } catch (FileNotFoundException e) {
e.printStackTrace();
} /*
* FileWrite 输出流 通过字符 对文件添加内容
*/
try {
//true 不会覆盖前面写的内容
FileWriter fw = new FileWriter("e:\\study\\file.txt",true);
String str = "TheStar";
fw.write(str);
fw.close(); } catch (IOException e) {
e.printStackTrace();
} } }
public class FileClass { public static void main(String[] args) { //根据路径目录实例化一个文件流对象
File file = new File("E:\\");
if (file.isFile()) {//是否为文件
System.out.println("是一个文件");
}else {
File[] files = file.listFiles();//文件数组
List fileList = new ArrayList(); for (int i = 0; i < files.length; i++) {
//列出目录
if(files[i].isDirectory()){
System.out.println("["+files[i].getPath()+"]");//是目录就输出路径名
}else {
fileList.add(files[i]) ;//文件就存在集合中
}
}
//列出文件
for (int i = 0; i < fileList.size(); i++) {
System.out.println(fileList.get(i));
} } } }
package com.direct.io; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable; public class WRObject implements Serializable{
//对象系列化必须实现Serializeble接口的类
// 如果用transient声明一个实例变量,用transient关键字标记的成员变量不参与序列化过程。
private String name;
private int age;
public WRObject(String name,int age){
this.name = name;
this.age = age;
}
public void display(){
System.out.println("name:"+name);
System.out.println("age:"+age);
} public static void main(String[] args) {
String path = "e:\\study\\file.txt";//路径
try {
ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream(path));
WRObject stu = new WRObject("Star", 18);
oout.writeObject(stu);//把对象输出流,序列化存入文件
oout.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path)); WRObject object = (WRObject)ois.readObject();//反序列化为一个对象
object.display();
ois.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} } }
package com.direct.io; import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class DataIO {
/*
* 对象的成员数据假设均为基本数据类型,
* 只对对象的成员数据进行输入和输出操作,而不是整个对象的信息
* 此时,可使用DataInputStream 和 DataOutputStream
* 读取二进制文件
*/
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public DataIO(String name, int age) {
super();
this.name = name;
this.age = age;
} public static void main(String[] args) {
DataIO[] data = {new DataIO("小白", 18) , new DataIO("小黑", 19) , new DataIO("小黄", 21)}; String path = "e:\\study\\file.txt";//路径
try {
/*
* DataOutputStream输出流
*/
DataOutputStream dous = new DataOutputStream(new FileOutputStream(path));
for (DataIO dataIO : data) {
try {
//写入UTF字符串
dous.writeUTF(dataIO.getName());
//写入int数据
dous.writeInt(dataIO.getAge()); } catch (IOException e) {
e.printStackTrace();
}
}
try {
dous.flush();//写入所有数据至目标文件
} catch (IOException e) {
e.printStackTrace();
}
try {
dous.close();
} catch (IOException e) {
e.printStackTrace();
} /*
* DataInputStream输入流,
*/
DataInputStream dis = new DataInputStream(new FileInputStream(path));
for (int i = 0; i < data.length; i++) {
String name;
try {
name = dis.readUTF();//读UTF字符串
int age;
try {
age = dis.readInt();//读int数据
data[i] = new DataIO(name, age);//重复成对象存入对象数组 } catch (IOException e) {
e.printStackTrace();
} } catch (IOException e) {
e.printStackTrace();
} } System.out.println("输出结果:");
for (DataIO dataIO : data) {
System.out.println(dataIO.getName()+" "+dataIO.getAge());
} try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
} } catch (FileNotFoundException e) {
e.printStackTrace();
} } }
package com.direct.io; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException; public class ReadFile { public static void main(String[] args) {
/*
* FileInputStream 输入流 字节 读文件
*/
String path = "e:\\study\\file.txt";//路径
File file = new File(path); if (!file.exists() || file.isDirectory()) {
System.out.println("文件不存在或是目录");
} try {
FileInputStream fip = new FileInputStream(file);//path和file同样
byte[] b = new byte[1024];
int n=0;
while((n=fip.read(b))!=-1){
//System.out.println(n);
System.out.println(new String(b,0,n));
}
fip.close();
/*StringBuffer sb= new StringBuffer();
while((fip.read(b)) != -1) {
sb.append(new String(b));
b = new byte[10];
}
fip.close();
System.out.println(sb.toString());*/
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} /*
* FileReader输入流 字符 读文件
*/
String record = null;//内容
int count = 0;//行
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);//根据fr对象创建输入流缓冲区对象br
while( (record=br.readLine()) != null){
count++;
System.out.println("第"+count+"行:"+record);
}
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }
package work.io; import java.io.File;
import java.io.IOException; public class ListFile { public static void main(String[] args) { File file = new File("e:/io");
try {
new ListFile(). listFile(file);
} catch (IOException e) {
e.printStackTrace();
}
}
// 把e盘的文件夹拷贝到d盘
public void listFile(File file) throws IOException{
String path1 ="d:/copy";//目录
String name= file.getPath().substring(2).replace('\\', '/'); // /io/name/file2.txt
path1+=name;
System.out.println(path1); // d:/copy/io/name/file2.txt
File file2 = new File(path1);
if (file.isDirectory()) {
//System.out.println("---------->"+path1);
file2.mkdirs();
File[] arrFiles = null;
arrFiles= file.listFiles();
for (int i = 0; i < arrFiles.length; i++) {
listFile(arrFiles[i]);
}
}
if (file.isFile()) {
System.out.println(file.getPath());
file2.createNewFile();
} } }
package work.io; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class Work23 {
public static void main(String[] args) {
try {
File file = new File("e:/姓名/file2.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
BufferedWriter bw= new BufferedWriter(fw);
String line1 = "2017年09月06日,今天我学习了文件流操作";
String line2 = "我已经学会用FileWriter和BufferedWriter学入文件了"; bw.write(line1);
bw.newLine();
bw.write(line2); bw.close();
fw.close(); FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String record = "";
System.out.println("文件中读取到的内容如下:");
while ( (record=br.readLine())!=null) {
System.out.println(record);
} } catch (IOException e) {
e.printStackTrace();
} }
}