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 = "我是美女!!! 我的名字是娜娜";// 实现输出换行 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(); } } }