Test.txt文件內容abcdefg
package com.pb.io;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/* * FileInputStreamDemo讀取文件 */public class FileInputStreamDemo1 { public static void main(String[] args) { //1.聲明文件對象,也可以跳過此步直接在第2步中寫 File f=new File("d:"+File.separator+"test"+File.separator+"test.txt"); //FileInputStream fis=new FileInputStream("d:/test/hello.txt"); try { //2.創建FileInputStream對象并將file對象傳入 FileInputStream fis=new FileInputStream(f); //3.定義整型變量用來存放內容 int date; //4先查看文件可以讀取的字節類available()方法獲取文件的字節數 System.out.結果:
可讀取的字節數:7=========開始讀取文件==================沒有轉換前輸出=======97 98 99 100 101 102 103 =======文件讀取結束=========結果:并不是文件中的內容
修改上面的文件:
package com.pb.io;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/* * FileInputStreamDemo讀取文件 */public class FileInputStreamDemo1 { public static void main(String[] args) { //1.聲明文件對象,也可以跳過此步直接在第2步中寫 File f=new File("d:"+File.separator+"test"+File.separator+"test.txt"); //FileInputStream fis=new FileInputStream("d:/test/hello.txt"); try { //2.創建FileInputStream對象并將file對象傳入 FileInputStream fis=new FileInputStream(f); //3.定義整型變量用來存放內容 int date; //4先查看文件可以讀取的字節類available()方法獲取文件的字節數 System.out.println("可讀取的字節數:"+fis.available()); System.out.println("=========開始讀取文件=========="); //5讀取文件read()方法 System.out.println("========轉換后轉出======="); while((date=fis.read())!=-1){ //!=-1說明文件還有內容=-1時,就說明文件內容讀完結束 char c=(char)date; System.out.println(c+"/t"); } System.out.println("=======文件讀取結束========="); //6.關閉流 fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}結果:
可讀取的字節數:7=========開始讀取文件==================轉換后轉出=======a b c d e f g =======文件讀取結束=========小結:FileInputStream
1.read()讀取內容,是返回int值
2.需要轉換字符
3.read()方法是單程的,
4.一定要關閉流
2.2、字節輸出流
package com.pb.io;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Scanner;public class FileOutputStreamDemo1 { public static void main(String[] args) { try { //1.實例化FileOutputStream對象,在文件的末尾追加內容 FileOutputStream fos=new FileOutputStream("d:/test/test.txt",true); //2.創建他寫入的字符串 Scanner input=new Scanner(System.in); System.out.println("請輸入要寫入文件的內容:"); String str=input.next(); //3.將內容轉換為字節數組 byte[] bytes=str.getBytes(); //4.將內容寫入 fos.write(bytes,0,bytes.length); //3個參數的方法,從0開始到數組結束的全部寫入 System.out.println("文件寫入結束!"); //5.關閉流 fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}結果:
請輸入要寫入文件的內容:輸入e結束好好學習,天天向上 hello java!文件寫入結束!test.txt
abcdefg好好學習,天天向上在進行寫操作時,如果文件不存在,將自動創建這個文件,如果上面沒test.txt,將會自動創建這個文件,可以試下,將文件刪除再運行
三、綜合使用package pb.io.file;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Scanner;/** * 拷貝文件 * @author 北大青鳥 * */public class CopyFile { public static void main(String[] args) { Scanner input=new Scanner(System.in); int date=0; System.out.print("請輸入您要拷貝的源文件:"); String file1=input.next(); System.out.print("請輸入您要拷貝的目標位置:"); String file2=input.next(); try { FileInputStream fis = new FileInputStream(file1); FileOutputStream fos = new FileOutputStream(file2); while((date=fis.read())!=-1){//讀取文件 char c=(char)date; fos.write(c); } fis.close(); fos.close(); System.out.println("拷貝成功!"); } catch (FileNotFoundException e) { System.out.println("源文件未找到!"); } catch (IOException ex) { System.out.println(ex.toString()); } }}
新聞熱點
疑難解答