java基礎——io流:
基本概念:
文 件:文件是數據源(保存數據的地方)的一種,像我們經常使用的word,txt,java都是文件,文件最主要的作用就是保存數據,它可以保存文字、圖片或聲音、視頻等
文件流:文件在程序中是以流的形式操作的

輸入輸出流轉換圖
輸入流:數據從 數據源(文件) 到 程序(內存) 之間的路徑
輸出流:數據從 程序(內存) 到 數據源(文件) 之間的路徑
輸入輸出是針對內存來說的
io流包括字符流和字節流
字符流針對文字相關的 包括Reader(讀入,輸入流)和Writer(寫出,輸出流)
字節流(stream)
1.FileWriter
(1)創建一個FileWriter
FileWriter fw=new FileWriter("d:\\aa.txt");文件路徑
FileWriter fw=new FileWriter("d:\\aa.txt",true); 允許追加寫出
1-寫出一個字符串:fw.write("hello world") 換行+\r\n
fw.flush();刷新
fw.close();關閉
2-可寫出char數組,可選擇輸出off偏移量,len長度
char c={'中',‘國’,‘節’,‘真’,‘好’,‘玩’};
fw.write(c,3,3)
3-輸出對應的ASCII碼
要輸出整數97 fw.write("97") 或char c={‘9’,‘7’};
2.FileReader
FileReader fr=new FileReader("d:\\aa.txt");文件路徑
char c[]=new char[512];
int tem=0;
while((tem=fr.read(c)!=-1)){
String ss=new String(c,0,tem)
System.out.println(ss);
}
讀一次寫一次:
方法一:/*FileReader fr=new FileReader("d:\\aa.txt");
FileWriter fw=new FileWriter("e:\\bb.txt");
char c[]=new char[512];
int tem=0;
while((tem=fr.read(c))!=-1){
fw.write(c,0,tem);
}
fw.flush();
fw.close();
fr.close();*/
方法二:拷貝文本文件
FileReader fr=new FileReader("e://a.txt");
BufferedReader br=new BufferedReader(fr);
FileWriter fw=new FileWriter("d://aa.txt");
BufferedWriter bw=new BufferedWriter(fw);
String ss=null;
while((ss=br.readLine())!=null){
bw.write(ss);
bw.newLine();//換行
}
bw.flush();
bw.close();
br.close();
3.字符緩沖流
字符緩沖區作用:對字符流進行再次封裝,使之讀寫效率提高
把集合中的數據寫到文本文件:
FileWriter fw=new FileWriter("d:\\aa.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("hello world");
bw.newLine();//換行
bw.write("hello world");
bw.flush();
bw.close();*/
把文本文件中的數據讀取到控制臺
FileReader fr=new FileReader("d:\\aa.txt");
BufferedReader br=new BufferedReader(fr);
String ss="";
while((ss=br.readLine())!=null){
System.out.println(ss);
}
br.close();
}
補充:File靜態成員變量
與系統有關的路徑分隔符 String separator=File.pathSeparator;
System.out.println(separator); 是一個分號,目錄的分割 Linux是:
與系統有關的默認名稱分隔符 separator=File.separator;
System.out.println(separator);向右\目錄名稱分割 Linux是:/
File類的構造方法 三種重載形式
1、File(String pathname)傳遞路徑名 可以寫到文件夾和文件
路徑
絕對路徑 在系統中具有唯一性 c://windows//system.32 http://www.baidu.com
相對路徑:表示的是路徑之間的相對關系
父目錄是唯一性 子目錄是可以多個 才c://abc c://abc//jpg c://abc//demo.java
2、File(String Parent,String child) 傳遞路徑,傳遞字符串父路徑 ,字符串子路徑
File file1=new File("c:","aa");
System.out.println(file1);輸出結果 c://aa
好處:單獨操作父路徑和子路徑
3、File(File parent,String child) 傳遞路徑,傳遞File類型父路徑,字符串子路徑
File parent =new File("d:");
File file2=new File(parent,"aa");
System.out.println(file2);輸出結果 c://aa
好處:父路徑是File類型,父路徑可以直接調用File類方法
File創建文件的功能:
File file=new File("f://aa.txt");
boolean b=file.createNewFile();
System.out.println(b); 文件如果已經存在就不再創建
File創建文件夾的功能:
File file1=new File("f://aa");
boolean c=file1.mkdir();
System.out.println(c);文件夾如果已經存在就不再創建
mkdis();創建多層次文件夾
建議用mkdis()來創建文件夾
File類的刪除功能 boolean delete()刪除的文件或者文件夾,在File構造方法中給出,刪除成功返回true,刪除失敗返回false
File file=new File(“c://abc”);
boolean b=file.delete();
system.out.println(b);
刪除方法不走回收站,直接從硬盤中刪除
File獲取功能
String getName() 返回路徑中表示的文件或者文件夾名 獲取路徑中最后部分的名字
long length()返回路徑中表示的文件的字節數,注意不是文件夾 File file=new File("D:\\oa\\.metadata\\.log");
long length=file.length();
System.out.println(length);
String getAbsolutePath()獲取絕對路徑;返回String對象
File getAbsoluteFile()獲取絕對路徑;返回File對象
File file=new File("D:\\oa\\.metadata\\.log");
String path=file.getAbsolutePath();
System.out.println(path);
eclipse環境中,寫的是一個相對路徑,絕對位置是工程根目錄
獲取父路徑:String getparent()返回String對象
File getParentFile()返回File對象
File parent=file.getParentFile().getParentFile().getParentFile();//輸出null
File判斷功能:
1、boolean exist是() 判斷File構造方法中封裝路徑是否存在,存在返回true,不存在返回false
2、boolean isDirectory()判斷File構造方法中封裝的路徑 是不是文件夾
3、boolean isFile()判斷File構造方法中封裝的路徑 是不是文件
4、list String[]list() 獲取到File構造方法中封裝的路徑中的文件和文件夾名 (遍歷一個目錄)返回只有名字
5、File[] listFiles()獲取到File構造方法中封裝的路徑中的文件和文件夾名 (遍歷一個目錄)返回File的是目錄或者文件的全路徑
- java基礎
- 第一章 認識java
- 第一節 第一個程序
- 第二節 jvm jdk jre說明
- 第三節 注釋
- 第二章 開發環境配置
- 第三章 eclipse中的快捷鍵
- 第四章 基本數據類型和運算符
- 第一節 變量
- 第二節 標示符
- 第三節 基本數據類型
- 第四節 運算符
- 第五章 面向對象
- 第一節 創建類
- 第二節 創建對象實例
- 第三節 成員方法
- 第四節 如何定義一個函數
- 第五節 構造方法
- 第六章 this關鍵字
- 第七節 方法的重載
- 第八節 靜態變量和靜態方法
- 第九節 封裝
- 第十節 包的使用方法
- 第十一節 全局變量和局部變量的區別
- 第十二節 斷點調試
- 第十三節 繼承
- 第十四節 多態
- 第十五節 抽象類
- 第十六節 接口
- 第十七節 final關鍵字
- 第六章 數組
- 第七章 api和String
- 第八章 集合
- 第九章 IO流