滴水穿石-08IO
Posted 逍遥小天狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滴水穿石-08IO相关的知识,希望对你有一定的参考价值。
1.0 File
a:构造方法
package d8; import java.io.File; public class FileGouZao { public static void main(String[] args) { //方式一:根据一个路径得到一个一个file对象 //File(String pathName) File fe = new File("D:\\\\aaa\\\\a.txt"); //方式二,通过父路径的名字 + 子文件/目录得到一个File对象 //File(String parent,String child) File fe2 = new File("D:\\\\aaa","a.txt"); //方式三,通过父File对象 + 子文件/目录得到一个File对象 //File(File parent,String child) File fe3 = new File("D:\\\\aaa"); File fe4 = new File(fe3,"D:\\\\aaa"); } }
b:创建方法
package d8; import java.io.File; import java.io.IOException; public class FileGouAdd { public static void main(String[] args) throws IOException { //方式一:创建文件 //boolean createNewFile() File fe = new File("D:\\\\aaa\\\\a.txt"); fe.createNewFile(); //方式二,创建文件夹 //boolean mkdir() File fe2 = new File("D:\\\\aaa","aa"); fe2.mkdir(); //方式三, 创建文件夹们,如果父文件夹不存在就创建 //boolean mkdirs() File fe3 = new File("D:\\\\aaa"); File fe4 = new File(fe3,"aa\\\\a"); fe4.mkdirs(); //注意如果没有写盘符,默认为项目路径 File fe5 = new File("a.txt"); fe5.createNewFile(); //如果用方式一创建时,如果父目录不存在,会出现"系统找不到指定的路径"的错误 //如果用方式二创建时,如果父目录不存在,返回false //如果用方式三创建时,如果父目录不存在,就创建上级目录 } }
c:删除方法
package d8; import java.io.File; import java.io.IOException; public class FileDelete { public static void main(String[] args) throws IOException { //方式一:创建文件 //boolean createNewFile() File fe = new File("D:\\\\aaa\\\\a.txt"); fe.createNewFile(); fe.delete(); File fe2 = new File("D:\\\\aaa"); System.out.println(fe2.delete()); //--------false---------// //注意:删除不走回收站 //如果是删除目录,则该目录必须为空才能删除 } }
package d8; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class Filedelete2 { public static void main(String[] args) throws IOException { //获取F盘所有的.exe文件 File fe = new File("D:\\\\aaa"); deleteAllFile(fe); /* */ } public static void deleteAllFile(File fe) { if( fe.isFile()|| fe==null ) { System.out.println(fe.getPath()); fe.delete(); }else if(fe.isDirectory()&& fe.list().length<1){ System.out.println(fe.getPath()); fe.delete(); }else { File [] files = fe.listFiles(); if (files!=null) { for (File file : files) { deleteAllFile(file); } deleteAllFile(fe); } } } } /*D:\\aaa\\a.txt D:\\aaa\\aa\\a D:\\aaa\\aa D:\\aaa\\b.txt D:\\aaa\\d.txt D:\\aaa*/
d:修改方法
package d8; import java.io.File; import java.io.IOException; public class FileRenameTo { public static void main(String[] args) throws IOException { //方式一:路径相同重命名 File fe = new File("D:\\\\aaa\\\\a.txt"); fe.createNewFile(); File f2 = new File("D:\\\\aaa\\\\b.txt"); fe.renameTo(f2); //方式二:路径不同,相当于剪切功能 File fe3 = new File("a.txt");//默认路径,也就是项目路径 fe3.createNewFile(); File f4 = new File("D:\\\\aaa\\\\d.txt"); fe3.renameTo(f4); //方式一:路径相同重命名 //方式二:路径不同,相当于剪切功能 } }
e:判断功能
package d8; import java.io.File; import java.io.IOException; public class FileJudge { public static void main(String[] args) throws IOException { File fe = new File("D:\\\\aaa\\\\a.txt"); boolean existsB = fe.exists();// 判断文件是否是存在 boolean isFileB = fe.isFile();// 判断文件是否是一个标准文件 boolean isDirectoryB = fe.isDirectory();// 判断文件是否是一个目录 boolean isHiddenB = fe.isHidden();// 判断文件是否是隐藏 boolean canReadB = fe.canRead();// 判断文件是否可读 boolean canWriteB = fe.canWrite();// 判断文件是否是可写 System.out.println(existsB); //---true---/ System.out.println(isFileB); //---true---/ System.out.println(isDirectoryB); //---false---/ System.out.println(isHiddenB); //---false---/ System.out.println(canReadB); //---true---/ System.out.println(canWriteB); //---true---/ } }
f:获取功能
package d8; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class FileGet { public static void main(String[] args) throws IOException { File fe = new File("D:\\\\aaa\\\\a.txt"); String strAbsolutePath = fe.getAbsolutePath();// 获取文件绝对路径 String strPath = fe.getPath();// 获取文件路径 String strName = fe.getName();// 获取文件名 Long length = fe.length();// 获取文件大小 Long strLastModified = fe.lastModified();// 获取文件最后的修改时间 Date d = new Date(strLastModified); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String s = sdf.format(d); System.out.println(strAbsolutePath); // ---D:\\aaa\\a.txt----/ System.out.println(strPath); // ---D:\\aaa\\a.txt----/ System.out.println(strName); // ---a.txt-----/ System.out.println(length); // ---12-----/ System.out.println(strLastModified); // ---1517184516189---/ System.out.println(s); // ---2018-01-29 20:10:41----/ } }
package d8; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class FileGet2 { public static void main(String[] args) throws IOException { File fe = new File("D:\\\\"); String [] nameArray = fe.list(); for (String s : nameArray) { System.out.println(s); } File [] fileArray = fe.listFiles(); for (File f : fileArray) { System.out.println(f.getName()); } /* $RECYCLE.BIN 00002109030000000000000000F01FEC.reg aaa API文档 BaiduNetdiskDownload Config.Msi Develop java(1) JavaWorkspace LuceneNet测试文件 midnds MyDrivers pagefile.sys Program Files Program Files (x86) StormMedia System Volume Information Unity3D5.0 Users 博客资料 迅雷下载 黑马JavaEE32*/ } }
package d8; import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class FileTest { public static void main(String[] args) throws IOException { //找出D盘下所有以.reg结尾的文件 File fe = new File("D:\\\\"); //方法一:取出所有文件然后筛选 File [] files = fe.listFiles(); for (File f : files) { if (f.isFile()&&f.getName().endsWith(".reg")) { System.out.println(f.getName()); } } //-----------00002109030000000000000000F01FEC.reg----------// //方法二: 通过过滤器先过滤一下 listFiles(FileFilter filter) File [] files2 = fe.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { // TODO Auto-generated method stub return pathname.isFile()&&pathname.getName().endsWith(".reg"); } }); for (File f : files2) { System.out.println(f.getName()); } //-----------00002109030000000000000000F01FEC.reg----------// //方法三:方法二可能消耗的资源有点大 list(FilenameFilter filter) String [] files3 = fe.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { if (name.endsWith(".reg")) { File fnew = new File(dir, name); return fnew.isFile(); } return false; } }); for (String f : files3) { System.out.println(f); } //-----------00002109030000000000000000F01FEC.reg----------// } }
递归获取4.0
2.0 IO
2.1 InputStream
2.1.1 FileInputStream
a:构造方法
package d8; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; public class FileInputStreamGouZao { public static void main(String[] args) throws FileNotFoundException { // 方式一:根据一个路径得到一个读取数据的写入文件流对象 // FileOutputStream(String name) FileInputStream fos = new FileInputStream("D:\\\\aaa\\\\a.txt"); // 方式二,通过File对象 得到一个读取数据的写入文件流对象 // FileOutputStream(File file) File fe = new File("D:\\\\aaa", "a.txt"); FileInputStream fos2 = new FileInputStream(fe); } }
b:读取方法
package d8; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileInputStreamRead { public static void main(String[] args) throws IOException { // 方式一: // read() 从此输入流中读取一个数据字节。 FileInputStream fis = new FileInputStream("D:\\\\aaa\\\\a.txt"); int b = 0; while((b=fis.read())!=-1) { System.out.println((char)b); } fis.close(); // 方式二 //read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 FileInputStream fis2 = new FileInputStream("D:\\\\aaa\\\\a.txt"); byte[] bs = new byte[5]; while(( fis2.read(bs))!=-1) { System.out.println(new String(bs)); } fis2.close(); // read(byte[] b, int off, int len) // 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。 FileInputStream fis3 = new FileInputStream("D:\\\\aaa\\\\a.txt"); byte[] bs2 = new byte[5]; int len = 0; while(( len = fis3.read(bs2))!=-1) { System.out.println(new String(bs2,0,len)); } fis3.close(); } } /* 方式一 H e l l o W o r l d j a v a */ /* 方式二 Hello Wor ld java va */ /* 方式三 Hello Wor ld java */
2.1.2 BufferedInputStream
a:构造方法
package d8; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; public class BufferedInputStreamGouZao { public static void main(String[] args) throws IOException { // 方式一:根据一个路径得到一个写入数据的输出文件流对象 //BufferedInputStream(InputStream out) BufferedInputStream fis = new BufferedInputStream(new FileInputStream("D:\\\\aaa\\\\a.txt")); // 方式二,通过Buffered对象 得到一个写入数据的输出文件流对象 // BufferedInputStream(InputStream out, int size) BufferedInputStream fis2 = new BufferedInputStream(new FileInputStream("D:\\\\aaa\\\\a.txt"),1024); } }
b:读取方法
package d8; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; public class BufferedInputStreamReade{ public static void main(String[] args) throws IOException { // 方式一 // read(int b) 将指定字节写入此文件输出流。 BufferedInputStream fis = new BufferedInputStream(new FileInputStream("D:\\\\aaa\\\\a.txt")); int b =0; while ((b=fis.read())!=-1) { System.out.println(b); } /* 97 32 119 111*/ // read(byte[] b, int off, int len) // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 BufferedInputStream fis2 = new BufferedInputStream(new FileInputStream("D:\\\\aaa\\\\a.txt"), 1024); byte [] by = new byte[5]; int len =0; while ((len = fis2.read(by,0,2))!=-1) { System.out.println(new String(by,0,len)); } //------------a -----------// //------------wo-----------// } }
2.2 OutPutStream
2.2.1 FileOutputStream
a:构造方法
package d8; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class FileOutputStreamGouZao { public static void main(String[] args) throws FileNotFoundException { //创建字节输出流对象做了3件事情 //01 调用系统功能创建文件 //02 创建fos对象 //03 将字节输出流对象指向对应的文件 // 方式一:根据一个路径得到一个写入数据的输出文件流对象 // FileOutputStream(String name) FileOutputStream fos = new FileOutputStream("D:\\\\aaa\\\\a.txt"); // 方式二,通过File对象 得到一个写入数据的输出文件流对象 // FileOutputStream(File file) File fe = new File("D:\\\\aaa", "a.txt"); FileOutputStream fos2 = new FileOutputStream(fe); // 方式三:根据一个路径得到一个写入数据的输出文件流对象,如为 true,则将字节写入文件末尾处 // FileOutputStream(String name,boolean append) FileOutputStream fos3 = new FileOutputStream("D:\\\\aaa\\\\a.txt", true); // 方式四,通过File对象 得到一个写入数据的输出文件流对象,如为 true,则将字节写入文件末尾处 // FileOutputStream((File file,boolean append) File fe2 = new File("D:\\\\aaa", "a.txt"); FileOutputStream fos4 = new FileOutputStream(fe2, true); } }
b:写入方法
package d8; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamWrite { public static void main(String[] args) throws IOException { // 创建字节输出流对象做了3件事情 // 01 调用系统功能创建文件 // 02 创建fos对象 // 03 将字节输出流对象指向对应的文件 // close()方法的作用 // 1:让流对象变成垃圾,方便被垃圾回收站回收 // 2:通知系统去释放掉该文件相关的资源 // 方式一: // write(byte[] b) 根据一个路径将指定 byte 数组写入此文件输出流中 FileOutputStream fos = new FileOutputStream("D:\\\\aaa\\\\a.txt"); fos.write("Hello World !".getBytes()); fos.close(); // -------Hello World !---------// // 方式二 // write(int b) 将指定字节写入此文件输出流。 FileOutputStream fos2 = new FileOutputStream("D:\\\\aaa\\\\b.txt"); fos2.write(97); fos2.close(); // -------a---------// // write(byte[] b, int off, int len) // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 FileOutputStream fos3 = new FileOutputStream("D:\\\\aaa\\\\c.txt"); fos3.write("Hello World !".getBytes(), 0, 5); fos3.close(); // -------Hello---------// } }
package d8; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamWrite2 { public static void main(String[] args) throws IOException { // 创建字节输出流对象做了3件事情 // 01 调用系统功能创建文件 // 02 创建fos对象 // 03 将字节输出流对象指向对应的文件 // 方式一: // write(byte[] b) 根据一个路径将指定 byte 数组写入此文件输出流中 FileOutputStream fos = new FileOutputStream("D:\\\\aaa\\\\a.txt",true); fos.write(\'\\r\'); fos.write(\'\\n\'); fos.write("Hello World !".getBytes()); fos.close(); //-------Hello World !---------// //--------Hello World ! ---------// // 方式二 // write(int b) 将指定字节写入此文件输出流。 File fe2 = new File("D:\\\\aaa", "b.txt"); FileOutputStream fos2 = new FileOutputStream(fe2, true); fos2.write(97); fos2.close(); //-------aa---------// } }
2.2.2 BufferedOutputStream
a:构造方法
package d8; import java.io.BufferedOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public classjava内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段
csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us