游戏大厅定制游戏开发,深圳网站优化推广方案,17模板网站,2017年网站建设公司文章目录File文件操作IO流处理流缓冲流转换流对象流File文件操作
利用File类来操作。
文件操作中常用到相对目录和绝对路径
package org.File; import java.io.File; public class demo01 { public static void main(String[] args) { try{ File file new File(…
文章目录File文件操作IO流处理流缓冲流转换流对象流File文件操作
利用File类来操作。
文件操作中常用到相对目录和绝对路径
package org.File; import java.io.File; public class demo01 { public static void main(String[] args) { try{ File file new File(./test.txt);
// 文件路径是以项目目录为起点的。
// 创建一个文件。 file.createNewFile(); }catch (Exception e ) { e.printStackTrace(); } }
}获取文件名
package org.File; import java.io.File; public class demo02 { public static void main(String[] args) { try { File file new File(src/main/java/org/File/Files/test.txt); file.createNewFile();
// 不能创建文件夹创建的是文件
// System.out.println(file.getParentFile());//得到上一层文件夹的对象
// System.out.println(file.getParent());//得到上一层文件夹
// System.out.println(file.exists());//判断文件是否存在 file.mkdir();file.mkdirs();
// 创建文件夹一般选择mkdirs() }catch (Exception e ){ e.printStackTrace(); } }
}文件的所有相关操作
package org.File; import java.io.File; public class demo02 { public static void main(String[] args) { try { File file new File(src/main/java/org/File/Files/test.txt); file.createNewFile();
// 不能创建文件夹创建的是文件
// System.out.println(file.getParentFile());//得到上一层文件夹的对象
// System.out.println(file.getParent());//得到上一层文件夹
// System.out.println(file.exists());//判断文件是否存在 file.mkdir();file.mkdirs();
// 创建文件夹一般选择mkdirs() // 重命名 file.renameTo(new File(src/main/java/org/File/Files/test2.md));
// 删除文件 file.delete(); System.out.println(file.isAbsolute());
// 判断是否是绝对路劲
// 判断是不是文件夹 System.out.println(file.isDirectory()); System.out.println(file.isFile());
// 判断是不是文件 System.out.println(file.length());
// 查看文件大小 System.out.println(file.getName());
// 文件名字。 }catch (Exception e ){ e.printStackTrace(); } }
}创建文件的完整步骤
package org.File; import java.io.File;
import java.io.IOException;
import java.text.FieldPosition; public class demo03 { public static void main(String[] args) { File file new File(resource/test.txt);
// 1、判断上层文件夹是否存在 File parentFile file.getParentFile(); if (!parentFile.exists()) { parentFile.mkdirs(); }
// 2、创建文件 try { file.createNewFile(); } catch (IOException e) { throw new RuntimeException(e); } }
}
IO流
流的分类
按照读写的方向讲是输入流和输出流按照读写单位分字节流和字符流流的功能不同分节点流和处理流
流的家族体系
输入输出字节流InputStreamOutputStream字符流ReaderWriter节点流和处理流 节点流直接连接在文件上的 处理流套在其他流上的
文件流 FileInputStream FileOutputStream FileReader FileWriter
package org.FileStream; import com.sun.org.apache.xpath.internal.operations.String; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException; public class demo01 { public static void main(String[] args) throws Exception { // 创建流 FileInputStream fils new FileInputStream(new File(./src/main/resources/a.txt)); int read fils.read(); System.out.println(read);
// 输出115 s的Ascii码 System.out.println((char) read); byte[] bs new byte[1024]; int len fils.read(bs ); //返回多少个字节 System.out.println(new String()); } }读取文件的一套写法
package org.FileStream; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException; public class demo02 { public static void main(String[] args) throws Exception { FileInputStream files new FileInputStream(new File(./src/main/resources/a.txt)); byte[] bytes new byte[1024]; int len0; while ((len files.read(bytes))!-1){ String s new String(bytes, 0, len); System.out.println(s); }
// 关闭文件流 files.close(); }
}写入文件
public FileOutputStream(File file, boolean append)append为true时是在文件后加入数据 默认是false会清空文件再添加数据。
package org.FileStream; import com.sun.org.apache.xpath.internal.operations.String; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader; public class demo04 { public static void main(String[] args) throws Exception { FileReader files new FileReader(new File(./src/main/resources/a.txt)); char[] cs new char[1024]; int len 0 ; while ((len files.read(cs))!-1){ System.out.println(new String(cs,0 ,len)); } files.close(); }
}package org.FileStream; import java.io.File;
import java.io.FileWriter;
import java.io.IOException; public class demo05 { public static void main(String[] args) throws IOException { FileWriter files new FileWriter(new File(./src/main/resources/a.txt),true); files.write(simple); files.flush(); files.close(); }
}将一张图片从一个地方复制到另一个地方 就将图片从a移动到b
package org.FileStream; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream; public class demo06 { public static void main(String[] args) throws Exception { File f new File(a/ba1.jpg); FileInputStream fis new FileInputStream(new File(a/ba1.jpg)); FileOutputStream fos new FileOutputStream(new File(b/bb1.jpg));
// 读取内容 byte[] bs new byte[1024]; int len 0; while ((len fis.read(bs))!-1){//读取数据 fos.write(bs,0,len);//写数据 } fis.close(); fos.flush(); fos.close(); // 如果是剪切 ,就把原来的图片删掉就行了
// f.delete(); }
}处理流
缓冲流
带有一个缓冲区的数据流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
package org.Process_of_Stream; import java.io.*; public class demo01_Buffer_stream { public static void main(String[] args) throws Exception {
// BufferedInputStream bis new BufferedInputStream(new FileInputStream(new File(/src/main/resources/a.txt)));
// 这里面套了三层东西,缓冲区套在节点流上,节点流套在文件流上 String path Thread.currentThread().getContextClassLoader().getResource(a.txt).getPath(); System.out.println(path);
// 获取路径 BufferedReader br new BufferedReader(new FileReader(new File(path))); System.out.println(br.readLine()); //读文本文件最好用的方法 System.out.println(br.readLine()); }
}标准的读取文件的写法
package org.Process_of_Stream; import java.io.*; public class demo01_Buffer_stream { public static void main(String[] args) throws Exception {
// BufferedInputStream bis new BufferedInputStream(new FileInputStream(new File(/src/main/resources/a.txt)));
// 这里面套了三层东西,缓冲区套在节点流上,节点流套在文件流上 String path Thread.currentThread().getContextClassLoader().getResource(a.txt).getPath(); System.out.println(path);
// 获取路径 BufferedReader br new BufferedReader(new FileReader(new File(path))); // System.out.println(br.readLine()); //读文本文件最好用的方法
// System.out.println(br.readLine()); String str ; while ((strbr.readLine())!null ){ System.out.println(str); } }
}转换流
有时需要将流进行转换. 一般我们得到的会是一个字节流. 这是一般我们需要转换成字符流
java中有的转换: 字节流 -- 字符流 InputStreamReader OutputStreamWriter
package org.Process_of_Stream; import jdk.nashorn.internal.runtime.regexp.joni.exception.SyntaxException; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner; public class demo02_Convert_stream { public static void main(String[] args) throws Exception {
// 系统输入是一个字节流 BufferedReader br new BufferedReader(new InputStreamReader(System.in));
// 通过转换流,将字节流转换成了字符流 String s br.readLine(); System.out.println(s); }
}package org.Process_of_Stream; import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer; public class demo03_Conver_stream { public static void main(String[] args) throws IOException { Writer writer new OutputStreamWriter(System.out); writer.write(hello simplecatlover); writer.flush();
// writer.close(); //这个流不可以关 System.out.println(sgjagjla); }
}对象流
也就是序列化和反序列化接口 两个类: ObjectInputStream ObjectOutputStream
类: 一定要implements Serializable
package org.Process_of_Stream.obj; import java.io.Serializable; public class Person implements Serializable { private int id; private String name; private int age; public Person(int id, String name, int age) { this.id id; this.name name; this.age age; } public void setId(int id) { this.id id; } public void setName(String name) { this.name name; } public void setAge(int age) { this.age age; } public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; }
}序列化:
package org.Process_of_Stream.obj; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream; public class test1 { public static void main(String[] args) throws Exception { ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(new File(person.dat))); Person p new Person(1,simple,2); oos.writeObject(p); oos.flush(); oos.close(); }
}反序列化: package org.Process_of_Stream.obj; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream; public class test1 { public static void main(String[] args) throws Exception { ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(new File(person.dat))); Person p new Person(1,simple,2); oos.writeObject(p); oos.flush(); oos.close(); }
}