public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("d:\\hello.txt");
// int data =0;
// //一个字符3个字节
// while((data=fr.read())!=-1){
// System.out.print((char) data);// }
char[] buf = new char[1024];
int count =0;
while ((count=fr.read(buf))!=-1){
System.out.println(new String(buf,0,count));}
fr.close();}
public static void main(String[] args) throws Exception{
FileWriter fw = new FileWriter("d:\\writer.txt");for(int i =0; i <10; i++){
fw.write("java best\r\n");
fw.flush();}
fw.close();}
字符缓冲流
BufferedReader/BufferedWriter
高效读写
支持输入换行符
可一次写一行,读一行
public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("d:\\hello.txt");
BufferedReader br = new BufferedReader(fr);
//一行一行读
String s = null;while((s=br.readLine())!=null){
System.out.println(s);}
br.close();
public static void main(String[] args) throws Exception{
FileWriter fw = new FileWriter("d:\\aaa.txt");
BufferedWriter bw = new BufferedWriter(fw);for(int i =0; i <10; i++){
bw.write("好好学习,天天享受");
//换行
bw.newLine();
bw.flush();}
bw.close();}
打印流
PrintWriter:
封装了print()/println()方法,支持写入后换行
支持数据原样打印
public static void main(String[] args) throws Exception{
PrintWriter pw = new PrintWriter("d:\\print.txt");
pw.println(97);
pw.println(true);
pw.print(3.14);
pw.print('a');
pw.close();}
转换流
桥转换流:InputStreamReader/OutputStreamReader
可将字节流转换为字符流
可设置字符的编码方式
保证文件编码和指定编码一致
public class Demo14 {
public static void main(String[] args) throws Exception{
FileInputStream fis = new FileInputStream("d:\\wr.txt");
InputStreamReader isr = new InputStreamReader(fis, "gbk");
char[] buf = new char[1024];
int count =0;while((count=isr.read(buf))!=-1){
System.out.println(new String(buf,0,count));}
isr.close();}
public static void main(String[] args) throws Exception{
FileOutputStream fos = new FileOutputStream("d:\\out.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk");for(int i =0; i <10; i++){
osw.write("最好的语言\r\n");}
osw.close();}
File类
概念:代表物理盘符中的一个文件或者文件夹
public class Demo1 {
public static void main(String[] args) throws Exception{
separator();
fileOpe();
directoryOpe();}
//分隔符
public static void separator(){
System.out.println("路径分隔符"+ File.pathSeparator);
System.out.println("名称分隔符"+File.separator);}
//文件操作
public static void fileOpe() throws Exception{
//创建文件
// 创建文件对象(在硬盘上不存在)
File file= new File("d:\\szx.txt");
//System.out.println(file);if(!file.exists()){
boolean newFile = file.createNewFile();
System.out.println(newFile);}
//删除文件
//直接删除
//boolean delete = file.delete();
//System.out.println(delete);
//使用jvm退出时删除
//file.deleteOnExit();
//Thread.sleep(5000);
//获取文件信息
System.out.println("绝对路径:"+file.getAbsolutePath());
System.out.println("获取路径:"+file.getPath());
System.out.println("获取文件名称:"+file.getName());
System.out.println("获取父目录:"+file.getParent());
System.out.println("获取文件长度:"+file.length());
System.out.println("获取文件创建时间:"+new Date(file.lastModified()).toLocaleString());
//判断
System.out.println("是否可写:"+file.canWrite());
System.out.println("是否是文件:"+file.isFile());
System.out.println("是否隐藏:"+file.isHidden());}
//文件夹操作
public static void directoryOpe() throws Exception{
File dir= new File("d:\\aaa\\bbb\\ccc");if(!dir.exists()){
//mkdirs可以创建多级目录
boolean newFile = dir.mkdirs();
System.out.println(newFile);}
//只删除最底层,且最底层必须是空文件夹
//boolean delete = dir.delete();
//System.out.println("删除结果:"+delete);
dir.deleteOnExit();
Thread.sleep(5000);
System.out.println("绝对路径:"+dir.getAbsolutePath());
System.out.println("获取路径:"+dir.getPath());
System.out.println("获取文件名称:"+dir.getName());
System.out.println("获取父目录:"+dir.getParent());
System.out.println("获取文件创建时间:"+new Date(dir.lastModified()).toLocaleString());
System.out.println("是否是文件夹"+dir.isDirectory());
System.out.println("是否隐藏"+dir.isHidden());
//遍历文件夹 list
File f = new File("c:\\Users\\13672\\Pictures\\哔哩哔哩动画");
String[] list = f.list();
System.out.println("------------------------");for(String s : list){
System.out.println(s);}}}
字符流字符流的父类(抽象类):Reader:字符输入流Writer:字符输出流文件字符流FileReaderFileWriter只能复制文本文件,不能复制图片等二进制文件 public static void main(String[] args) throws Exception{ FileReader fr = new FileReader("d:\\hello.txt");// int data = 0;// //一