摘要:流讀寫基本功能新建文件查看列表寫文件刪除文件查看文件導入的包下面新建一個類,然后在函數里初始化一個方法,方法中用來判斷輸入的值所相對應的功能板塊。這里也只限制于在正常情況下的輸入輸出。
IO流讀寫
基本功能:
新建文件
查看列表
寫文件
刪除文件
查看文件
導入的包:
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; import javax.swing.plaf.synth.SynthSeparatorUI;
下面新建一個類,然后在main函數里初始化一個方法,方法中用if來判斷輸入的值所相對應的功能板塊。
public static void main(String[] args) { init();//初始化方法 } public static void init(){ Scanner in = new Scanner(System.in); boolean flag = true; System.out.println("========小說系統======="); while(flag){ System.out.println("請選擇:1 新建文件 2 查看文件列表 3 寫文件 4 刪除文件 5 查看文件內容 6 退出"); int i = in.nextInt(); if(i == 1){ //新建流程 createFile(in); }else if(i == 2){ //查看文件列表 showFiles(); }else if(i == 3){ //寫文件 writeFile(in); }else if(i == 4){ //刪除文件 removeFile(in); }else if(i == 5){ //查看文件內容 showFileContent(in); }else if(i == 6){ //退出 flag = false; } } }
下面我會對每個板塊的功能進行描述:
1.新建功能
//新建文件的方法 public static void createFile(Scanner in){ System.out.println("請輸入文件名稱:"); //給文件命名 String filename = in.next(); //這里的文件夾自己創建或者自己定義就好 File f = new File("e://io/"+filename+".txt"); try { f.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
2.查看文件下的所有文件方法:
//查看文件列表的方法; public static void showFiles(){ File file = new File("E://io"); //獲取指定文件夾下的文件數組的特定方法 File[] files = file.listFiles(); //遍歷文件夾下的所有文件名 for(File f:files){ System.out.println(f.getName()); } }
3.寫文件內容的方法
//寫文件方法 public static void writeFile(Scanner in){ System.out.println("請輸入要寫的文件的名稱:"); String filename=in.next(); System.out.println("請輸入信息:"); String content=in.next(); try { BufferedOutputStream out=null; out=new BufferedOutputStream(new FileOutputStream("e://io/"+filename+".txt",true)); out.write((" "+content).getBytes()); //緩存流需要注意flush方法的使用,flush方法可在緩存區未滿的情況下,將緩存內容寫出到外部設備中 out.flush(); out.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
4.刪除文件
//刪除文件方法 public static void removeFile(Scanner in){ System.out.println("請輸入你要刪除的文件名:"); String filename = in.next(); File f = new File("e://io/"+filename+".txt"); if(f.exists()){ //判斷文件是否存在 boolean b = f.delete(); if(b){ System.out.println("文件刪除成功"); } }else{ System.out.println("請重新選擇主菜單"); } }
5.查看文件內容的方法:
//查看文件內容的方法 public static void showFileContent(Scanner in){ System.out.println("請輸入文件名字:"); String filename = in.next(); try { BufferedInputStream bufferedInput = null; bufferedInput = new BufferedInputStream(new FileInputStream("e://io/"+filename+".txt")); int n; byte[] buffer = new byte[1024]; String chunk = null; // read():讀入一個字節,當有中文的時候不可用,所以這里用數組來存每一個字符,最后轉成字符串輸出 // 從文件中按字節讀取內容,到文件尾部時read方法將返回-1 while ((n = bufferedInput.read(buffer)) != -1) { chunk = new String(buffer, 0, n); System.out.print(chunk); } bufferedInput.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
6.全部源碼
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; import javax.swing.plaf.synth.SynthSeparatorUI; public class System { public static void main(String[] args) { init();//初始化方法 } public static void init(){ Scanner in = new Scanner(System.in); boolean flag = true; System.out.println("========歡迎使用雙體系小說系統======="); while(flag){ System.out.println("請選擇:1 新建文件 2 查看文件列表 3 寫文件 4 刪除文件 5 查看文件內容 6 退出"); int i = in.nextInt(); if(i == 1){ //新建流程 createFile(in); }else if(i == 2){ //查看文件列表 showFiles(); }else if(i == 3){ //寫文件 writeFile(in); }else if(i == 4){ //刪除文件 removeFile(in); }else if(i == 5){ //查看文件內容 showFileContent(in); }else if(i == 6){ //退出 flag = false; } } } //新建文件的方法 public static void createFile(Scanner in){ System.out.println("請輸入文件名稱:"); //給文件命名 String filename = in.next(); File f = new File("e://io/"+filename+".txt"); try { f.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //查看文件列表的方法; public static void showFiles(){ File file = new File("E://io"); File[] files = file.listFiles();//獲取指定文件夾下的文件數組 for(File f:files){ System.out.println(f.getName()); } } //寫文件方法 public static void writeFile(Scanner in){ System.out.println("請輸入要寫的文件的名稱:"); String filename=in.next(); System.out.println("請輸入信息:"); String content=in.next(); try { BufferedOutputStream out=null; out=new BufferedOutputStream(new FileOutputStream("e://io/"+filename+".txt",true)); out.write((" "+content).getBytes()); //緩存流需要注意flush方法的使用,flush方法可在緩存區未滿的情況下,將緩存內容寫出到外部設備中 out.flush(); out.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //刪除文件方法 public static void removeFile(Scanner in){ System.out.println("請輸入你要刪除的文件名:"); String filename = in.next(); File f = new File("e://io/"+filename+".txt"); if(f.exists()){ //判斷文件是否存在 boolean b = f.delete(); if(b){ System.out.println("文件刪除成功"); } }else{ System.out.println("請重新選擇主菜單"); } } //查看文件內容的方法 public static void showFileContent(Scanner in){ System.out.println("請輸入文件名字:"); String filename = in.next(); try { BufferedInputStream bufferedInput = null; bufferedInput = new BufferedInputStream(new FileInputStream("e://io/"+filename+".txt")); int n; byte[] buffer = new byte[1024]; String chunk = null; // read():讀入一個字節 // 從文件中按字節讀取內容,到文件尾部時read方法將返回-1 while ((n = bufferedInput.read(buffer)) != -1) { chunk = new String(buffer, 0, n); System.out.print(chunk); } bufferedInput.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
注:當然啦,只是實現了基本的功能,對于一些細節沒有處理,比如輸入的時候如果有字符怎么處理等情況。這里也只限制于在正常情況下的輸入輸出。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71243.html
摘要:通過多個裝飾類實現責任鏈模式,它將對一個輸入流的不同處理分散到不同的中去。 1、基本概念 1.1、InputStream 最基本的字節輸入流,抽象類,定義了讀取原始字節的所有基本方法1.1.1、public abstract int read() throws IOException 讀取一個字節的方法,最基礎的方法1.1.2、public int read(byte b[], in...
摘要:在包下主要包括輸入輸出兩種流,每種輸入輸出流又可分為字節流和字符流兩大類。輸入輸出是從程序運行所在的內存的角度而言的。的輸入流主要由和作為基類,而輸出流主要由和作為基類。 本章主要參考和摘自瘋狂java講義上面的(java編程思想的后面看過后有新的內容再補充進去吧)。 輸入輸出是所有程序都必需的部分————使用輸入機制允許程序讀取外部數據(包括磁盤、光盤等存儲設備上的數據和用戶輸入的...
摘要:一面試題及剖析今日面試題今天壹哥帶各位復習一塊可能會令初學者比較頭疼的內容,起碼當時讓我很有些頭疼的內容,那就是流。在這里壹哥會從兩部分展開介紹流,即與流。除此之外盡量使用字節流。關閉此輸入流并釋放與流相關聯的任何系統資源。 一. 面試題及剖析 1. 今日面試題 今天 壹哥 帶各位復習一塊可...
摘要:字節流可以處理所有以為單位存儲的文件,也就是說可以處理所有的文件,但是在處理字符的速度上不如字符流。文件字節輸入流的讀取時,是直接同字節流中讀取的。原理就是在字節流的基礎上增加了編解碼的操作。 前言 流是干什么的:為了永久性的保存數據。 IO流用來處理設備之間的數據傳輸(上傳和下載文件) java對數據的操作是通過流的方式。 java用于操作流的對象都在IO包中。 java IO系統...
閱讀 2255·2023-04-26 02:14
閱讀 2926·2021-09-30 09:46
閱讀 2101·2021-09-24 09:48
閱讀 952·2021-09-24 09:47
閱讀 3252·2019-08-30 15:44
閱讀 1879·2019-08-30 15:44
閱讀 3279·2019-08-30 14:18
閱讀 1949·2019-08-30 12:58