import java.io.*; class hello{ public static void main(String[] args) { System.out.println(File.separator);//輸出"/" System.out.println(File.separatorChar + "");//輸出"/" System.out.println(File.pathSeparator);//輸出 ":" System.out.println(File.pathSeparatorChar + "");//輸出 ":" } }在windows下使用\進行分割,可是在linux下就不是\了。因此,要想使得咱們的代碼跨平臺,更加健壯,因此,採用這兩個常量吧
建立文件
import java.io.*; class hello{ public static void main(String[] args) { File f=new File("D:\\hello.txt"); try{ f.createNewFile(); }catch (Exception e) { e.printStackTrace(); } } }
建立一個文件夾
import java.io.*; class hello{ public static void main(String[] args) { String fileName="D:"+File.separator+"hello"; File f=new File(fileName); f.mkdir(); } }
刪除一個文件
import java.io.*; class hello{ public static void main(String[] args) { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); if(f.exists()){ f.delete(); }else{ System.out.println("文件不存在"); } } }
列出指定目錄的所有文件名(包括隱藏文件)
/** * 使用list列出指定目錄的所有文件名 * */ import java.io.*; class hello{ public static void main(String[] args) { String fileName="D:"+File.separator; File f=new File(fileName); String[] str=f.list(); for (int i = 0; i < str.length; i++) { System.out.println(str[i]); } } }
列出指定目錄的所有文件(包括隱藏文件)
/** * 使用listFiles列出指定目錄的所有文件 * listFiles輸出的是完整路徑 * */ import java.io.*; class hello{ public static void main(String[] args) { String fileName="D:"+File.separator; File f=new File(fileName); File[] str=f.listFiles(); for (int i = 0; i < str.length; i++) { System.out.println(str[i]); } } }
判斷一個指定的路徑是否爲目錄
/** * 使用isDirectory判斷一個指定的路徑是否爲目錄 * */ import java.io.*; class hello{ public static void main(String[] args) { String fileName="D:"+File.separator; File f=new File(fileName); if(f.isDirectory()){ System.out.println("YES"); }else{ System.out.println("NO"); } } }
搜索指定目錄的所有內容
/** * 列出指定目錄的所有內容 * */ import java.io.*; class hello{ public static void main(String[] args) { String fileName="D:"+File.separator; File f=new File(fileName); print(f); } public static void print(File f){ if(f!=null){ if(f.isDirectory()){ File[] fileArray=f.listFiles(); if(fileArray!=null){ for (int i = 0; i < fileArray.length; i++) { //遞歸調用 print(fileArray[i]); } } } else{ System.out.println(f); } } } }
使用RandomAccessFile寫入文件
/** * 使用RandomAccessFile寫入文件 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); RandomAccessFile demo=new RandomAccessFile(f,"rw"); demo.writeBytes("asdsad"); demo.writeInt(12); demo.writeBoolean(true); demo.writeChar('A'); demo.writeFloat(1.21f); demo.writeDouble(12.123); demo.close(); } }
中文亂碼,不能對文件進行覆寫不能追加
向文件中寫入字符串
/** * 字節流 * 向文件中寫入字符串 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); OutputStream out =new FileOutputStream(f); String str="你好"; byte[] b=str.getBytes(); out.write(b); out.close(); } }
中文不亂碼,文件不存在會建立,會覆寫
一個字節一個字節的寫
/** * 字節流 * 向文件中一個字節一個字節的寫入字符串 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); OutputStream out =new FileOutputStream(f); String str="你好"; byte[] b=str.getBytes(); for (int i = 0; i < b.length; i++) { out.write(b[i]); } out.close(); } }
向文件中追加新內容
/** * 字節流 * 向文件中追加新內容: * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); OutputStream out =new FileOutputStream(f,true);//追加模式 String str="Rollen"; //String str="\r\nRollen"; 能夠換行 byte[] b=str.getBytes(); for (int i = 0; i < b.length; i++) { out.write(b[i]); } out.close(); } }
讀取文件內容
/** * 字節流 * 讀文件內容 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); InputStream in=new FileInputStream(f); byte[] b=new byte[1024]; in.read(b); in.close(); System.out.println(new String(b)); } }
建立合適長度的空間大小
/** * 字節流 * 讀文件內容,節省空間 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); InputStream in=new FileInputStream(f); byte[] b=new byte[(int)f.length()]; in.read(b); System.out.println("文件長度爲:"+f.length()); in.close(); System.out.println(new String(b)); } }
一個一個讀
/** * 字節流 * 讀文件內容,節省空間 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); InputStream in=new FileInputStream(f); byte[] b=new byte[(int)f.length()]; for (int i = 0; i < b.length; i++) { b[i]=(byte)in.read(); } in.close(); System.out.println(new String(b)); } }
文件不知道長度讀取
/** * 字節流 *讀文件 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); InputStream in=new FileInputStream(f); byte[] b=new byte[1024]; int count =0; int temp=0; while((temp=in.read())!=(-1)){//返回-1則表示到了文件尾部 b[count++]=(byte)temp; } in.close(); System.out.println(new String(b)); } }
字符流寫入數據
/** * 字符流 * 寫入數據 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); Writer out =new FileWriter(f);//追加時和上面同樣加一爲true的參數 String str="hello"; out.write(str); out.close(); } }
字符流從文件中讀出內容
/** * 字符流 * 從文件中讀出內容 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); char[] ch=new char[100]; Reader read=new FileReader(f); int count=read.read(ch); read.close(); System.out.println("讀入的長度爲:"+count); System.out.println("內容爲"+new String(ch,0,count)); } }
循環讀取的方式
/** * 字符流 * 從文件中讀出內容 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName="D:"+File.separator+"hello.txt"; File f=new File(fileName); char[] ch=new char[100]; Reader read=new FileReader(f); int temp=0; int count=0; while((temp=read.read())!=(-1)){ ch[count++]=(char)temp; } read.close(); System.out.println("內容爲"+new String(ch,0,count)); } }
OutputStreramWriter將輸出的字符流轉化爲字節流
InputStreamReader將輸入的字節流轉換爲字符流
將字節輸出流轉化爲字符輸出流
/** * 將字節輸出流轉化爲字符輸出流 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName= "d:"+File.separator+"hello.txt"; File file=new File(fileName); Writer out=new OutputStreamWriter(new FileOutputStream(file)); out.write("hello"); out.close(); } }
將字節輸入流變爲字符輸入流
/** * 將字節輸入流變爲字符輸入流 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String fileName= "d:"+File.separator+"hello.txt"; File file=new File(fileName); Reader read=new InputStreamReader(new FileInputStream(file)); char[] b=new char[100]; int len=read.read(b); System.out.println(new String(b,0,len)); read.close(); } }
ByteArrayInputStream 主要將內容寫入內容
ByteArrayOutputStream 主要將內容從內存輸出
使用內存操做流將一個大寫字母轉化爲小寫字母
/** * 使用內存操做流將一個大寫字母轉化爲小寫字母 * */ import java.io.*; class hello{ public static void main(String[] args) throws IOException { String str="ROLLENHOLT"; ByteArrayInputStream input=new ByteArrayInputStream(str.getBytes()); ByteArrayOutputStream output=new ByteArrayOutputStream(); int temp=0; while((temp=input.read())!=-1){ char ch=(char)temp; output.write(Character.toLowerCase(ch)); } String outStr=output.toString(); input.close(); output.close(); System.out.println(outStr); } }內容操做流通常使用來生成一些臨時信息採用的,這樣能夠避免刪除的麻煩。
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。java