Java输入/输出
目录
- File
- Writer
- BufferedWriter
- CharArrayWriter
- FilterWriter
- OutputStreamWriter
- FileWriter
- PrintWriter
- StringWriter
- Reader
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- FileReader
- StringReader
- InputStream
- ByteArrayInputStream
- FileInputStream
- ObjectInputStream
- PipedInputStream
- SequenceInputStream
- StringBufferInputStream
- OutputStream
- ByteArrayOutputStream
- FileOutputStream
- ObjectOutputStream
- PipedOutputStream
- SequenceOutputStream
- StringBufferOutputStream
- RandomAccessFile
File
1.构造函数
1 public class FileDemo { 2 public static void main(String[] args){ 3 //构造函数File(String pathname) 4 File f1 =new File("c:\\abc\\1.txt"); 5 //File(String parent,String child) 6 File f2 =new File("c:\\abc","2.txt"); 7 //File(File parent,String child) 8 File f3 =new File("c:"+File.separator+"abc");//separator 跨平台分隔符 9 File f4 =new File(f3,"3.txt"); 10 System.out.println(f1);//c:\abc\1.txt 11 12 } 13 14 }
2.创建方法
- boolean createNewFile() 不存在返回true 存在返回false
- boolean mkdir() 创建目录
- boolean mkdirs() 创建多级目录
3.删除方法
- boolean delete()
- boolean deleteOnExit() 文件使用完成后删除
import java.io.File; import java.io.IOException; public class FileDemo2 { public static void main(String[] args){ File f =new File("d:\\1.txt"); try { System.out.println(f.createNewFile());//当文件存在时返回false System.out.println(f.delete());//当文件不存在时返回false } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
4.判断方法
- boolean canExecute()判断文件是否可执行
- boolean canRead()判断文件是否可读
- boolean canWrite() 判断文件是否可写
- boolean exists() 判断文件是否存在
- boolean isDirectory()
- boolean isFile()
- boolean isHidden()
- boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断
5.获取方法
- String getName()
- String getPath()
- String getAbsolutePath()
- String getParent()//如果没有父目录返回null
- long lastModified()//获取最后一次修改的时间
- long length()
- boolean renameTo(File f)
- File[] liseRoots()//获取机器盘符
- String[] list()
- String[] list(FilenameFilter filter)
6.其它方法
列出磁盘下的文件和文件夹
1 public class FileDemo3 { 2 public static void main(String[] args){ 3 File[] files =File.listRoots(); 4 for(File file:files){ 5 System.out.println(file); 6 if(file.length()>0){ 7 String[] filenames =file.list(); 8 for(String filename:filenames){ 9 System.out.println(filename); 10 } 11 } 12 } 13 } 14 15 }
文件过滤
1 import java.io.File; 2 import java.io.FilenameFilter; 3 public class FileDemo4 { 4 public static void main(String[] args){ 5 File[] files =File.listRoots(); 6 for(File file:files){ 7 System.out.println(file); 8 if(file.length()>0){ 9 String[] filenames =file.list(new FilenameFilter(){ 10 //file 过滤目录 name 文件名 11 public boolean accept(File file,String filename){ 12 return filename.endsWith(".mp3"); 13 } 14 }); 15 for(String filename:filenames){ 16 System.out.println(filename); 17 } 18 } 19 } 20 } 21 22 }
File[] listFiles()
File[] listFiles(FilenameFilter filter)
利用递归列出全部文件
public class FileDemo5 { public static void main(String[] args){ File f =new File("e:\\音樂"); showDir(f); } public static void showDir(File dir){ System.out.println(dir); File[] files =dir.listFiles(); for(File file:files){ if(file.isDirectory()) showDir(file); else System.out.println(file); } } }
移动文件
找出d盘下所有的 .java 文件,拷贝至 c:\jad 目录下,并将所有文件的类型由.java 修改为.jad 。
public class Test5 { public static void main(String[] args){ File f1 = new File("d:\\"); moveFile(f1); } public static void moveFile(File dir){ File[] files=dir.listFiles(); for(File file:files){ if(file.isDirectory()) moveFile(file); else{ if(file.getName().endsWith(".java")) file.renameTo(new File("c:\\jad\\"+ file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad")); } } } }