絕對路徑和相對路徑
- 絕對路徑:指文件在硬盤上真正存在的路徑,比如:D:\Java\HelloWorld.java,這個指的是在電腦的d盤下的Java文件夾里面有個HelloWorld.java文件
- 相對路徑:指某個文件的路徑和別的文件的路徑關系,比如在d盤里面有個兩個文件,路徑分別是:D:\Java\HelloWorld.java和D:\Java\images\monkey.png。他們都在d盤中的Java文件夾里面,其中monkey.png這個文件的路徑相對HelloWorld.java來說就是\images\monkey.png
使用FileInputStream讀取文件中的內容
在項目的根目錄里面創建一個file文件夾,在這個文件夾里面再創建monkey.txt的文本文件,然后在里面寫上abc這三個字母,保存關閉。
下面通過FileInputStream將硬盤中的monkey.txt文件中的內容讀取到內存當中並在控制台打印,操作結束之后注意關閉流釋放資源,這里相當於在內存和硬盤之間放一個梯子,在將硬盤中的文件全部讀取到內存之后,需要拿掉梯子,否則會浪費資源。
package com.sutaoyu.IO; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class IO_test_2 { public static void main(String[] args) { FileInputStream fis = null; try { //絕對路徑,需要加轉義字符 //fis = new FileInputStream("F:\\monkey1024\\01-JavaSE\\代碼\\code\\chapter-08\\file\\monkey.txt"); //相對路徑 fis = new FileInputStream("file\\monkey.txt"); //定義byte數組每次讀取三個字節提高效率 byte[] bytes = new byte[3]; int temp; //如果返回-1則說明讀取完畢 while((temp = fis.read(bytes)) != -1) { System.out.println(new String(bytes,0,temp)); } }catch(FileNotFoundException e) { e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); }finally { try { fis.close(); }catch(IOException e) { e.printStackTrace(); } } } }
使用FileOutputStream向文件寫出內容
向1024.txt文件中寫出字母
在windos中的文件路徑是以”\”來分隔
在linux中的文件路徑是以”/”來分隔
如果將上面代碼部署到linux中會讀取不到文件,為了保證編寫的代碼跨平台需要使用java.io包下的File.separator來替代文件路徑的分隔符,如下:
將
fis = new FileInputStream("file\\monkey.txt");
修改為
fis = new FileInputStream("file" + File.separator + "monkey.txt");