基於java的IO流的文件讀取系統

IO流讀寫

基本功能:java

  1. 新建文件
  2. 查看列表
  3. 寫文件
  4. 刪除文件
  5. 查看文件

導入的包:數組

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.查看文件下的全部文件方法:code

//查看文件列表的方法;
    public static void showFiles(){
        File file = new File("E://io");
        //獲取指定文件夾下的文件數組的特定方法
        File[] files = file.listFiles();
        //遍歷文件夾下的全部文件名
        for(File f:files){
            System.out.println(f.getName());
        }
    }

3.寫文件內容的方法rem

//寫文件方法
        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(("\r\n\t "+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.查看文件內容的方法:get

//查看文件內容的方法
        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(("\r\n\t "+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();
        }
        }
}

注:固然啦,只是實現了基本的功能,對於一些細節沒有處理,好比輸入的時候若是有字符怎麼處理等狀況。這裏也只限制於在正常狀況下的輸入輸出。it

相關文章
相關標籤/搜索