java io读取文件_基于java的IO流的文件读取系统

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(("\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();

}

}

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();

}

}

}

注:当然啦,只是实现了基本的功能,对于一些细节没有处理,比如输入的时候如果有字符怎么处理等情况。这里也只限制于在正常情况下的输入输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值