基于普通IO流的小说管理系统
来源:互联网 发布:铲形门齿 知乎 编辑:程序博客网 时间:2024/05/22 23:25
IO流读写
昨天用java写了一个用io流来操作本地文件的dos程序。基本功能就是
- 1.新建文件
- 2.查看列表
- 3.写文件
- 4.删除文件
- 5.查看文件
- 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;
下面新建一个类,然后在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(("\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.查看文件内容的方法:
//查看文件内容的方法 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(); } }
基本功能实现完成,下面发一下所有的源代码:
package com.stx.xs;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;/***@author : Hao-Starlilac*@version : Beta1.0*Date : 2017年5月16日 下午5:03:19*/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(); } }}
当然啦,只是实现了基本的功能,对于一些细节没有处理,比如输入的时候如果有字符怎么处理等情况。这里也只限制于在正常情况下的输入输出。
阅读全文
0 0
- 基于普通IO流的小说管理系统
- Java IO的简易学生管理系统
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO内存和IO端口的管理
- 系统对IO端口和IO内存的管理
- Linux系统对IO端口和IO内存的管理
- Linux系统对IO内存和IO端口的管理
- Linux系统对IO内存和IO端口的管理
- Linux系统对IO端口和IO内存的管理
- [Codeforces 808F] [二分] [最小割] Card Game
- 吴晓波听后感
- CSS实现垂直居中水平居中的绝对定位居中技术
- 蓝牙加密【DATA SIGNING】【SECURITY MODES】【SECURITY COMMAND FORMAT】【主机加密流程】【加密流程】【Bonding Procedure】
- 解决windows7窗口显示缓慢问题
- 基于普通IO流的小说管理系统
- html表格
- 浏览器内部工作原理
- 数组
- 循环请求数据时,返回的结果没有按照顺序显示的解决方法
- java.util.ResourceBundle使用详解
- Android客户端集成微信支付
- 关于__ATTRIBUTE__ 使用
- 刷清橙OJ--A1020.数列排序