Java IO流讀取文件的代碼
一、使用字符流,讀取和存儲純文本文件。
存儲文件,也就是像一個文件里寫內容,既然是寫,那就需要使用輸出流。而且我們寫的是純文本文件,所以這里使用字符流來操作,java api提供給我們FileWriter這么一個類,我們來試試:(讀取文件同理使用FileReader類)
package org.example.io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TestFileWriter {
public static void main(String[] args) throws Exception {
writeToFile();
readFromFile();
}
/**
* DOC 從文件里讀取數據.
*
* @throws FileNotFoundException
* @throws IOException
*/
private static void readFromFile() throws FileNotFoundException, IOException {
File file = new File("E:\\helloworld.txt");// 指定要讀取的文件
FileReader reader = new FileReader(file);// 獲取該文件的輸入流
char[] bb = new char[1024];// 用來保存每次讀取到的字符
String str = "";// 用來將每次讀取到的字符拼接,當然使用StringBuffer類更好
int n;// 每次讀取到的字符長度
while ((n = reader.read(bb)) != -1) {
str += new String(bb, 0, n);
}
reader.close();// 關閉輸入流,釋放連接
System.out.println(str);
}
/**
* DOC 往文件里寫入數據.
*
* @throws IOException
*/
private static void writeToFile() throws IOException {
String writerContent = "hello world,你好世界";// 要寫入的文本
File file = new File("E:\\helloworld.txt");// 要寫入的文本文件
if (!file.exists()) {// 如果文件不存在,則創建該文件
file.createNewFile();
}
FileWriter writer = new FileWriter(file);// 獲取該文件的輸出流
writer.write(writerContent);// 寫內容
writer.flush();// 清空緩沖區,立即將輸出流里的內容寫到文件里
writer.close();// 關閉輸出流,施放資源
}
} </pre>
測試結果:
hello world,你好世界
二、使用字節流,讀取和存儲圖片
首先使用輸入流讀取圖片信息,然后通過輸出流寫入圖片信息:
package org.example.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class TestIOStream {
/**
*
* DOC 將F盤下的test.jpg文件,讀取后,再存到E盤下面.
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
FileInputStream in = new FileInputStream(new File("F:\\test.jpg"));// 指定要讀取的圖片
File file = new File("E:\\test.jpg");
if (!file.exists()) {// 如果文件不存在,則創建該文件
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(new File("E:\\test.jpg"));// 指定要寫入的圖片
int n = 0;// 每次讀取的字節長度
byte[] bb = new byte[1024];// 存儲每次讀取的內容
while ((n = in.read(bb)) != -1) {
out.write(bb, 0, n);// 將讀取的內容,寫入到輸出流當中
}
out.close();// 關閉輸入輸出流
in.close();
}
} </pre>
本文由用戶 m8x2 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!