java的小说展示,下载在查看所有(文件路径找不到,可以修改)

<img src="https://img-blog.csdn.net/20151206231620044?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20151206231544873?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20151206231544873?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><span style="font-family: Arial, Helvetica, sans-serif;">菜单传过来的值,进行响应处理。(接着上一篇)</span>
<pre name="code" class="java">package com.novel.source;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

public class NovelAction {
	public static void main(String[] args) {
		List<NovelSource> listC=NovelAction.listNoveType("32","0");
		NovelAction.SeeNovelInfo(listC,0);
	}
	//接收用户输入的是看古典还是看武侠小说,加入信号标志位
	public static List<NovelSource> listNoveType(String UserTypeMTr,String single){
		List<NovelSource> listC=new ArrayList<NovelSource>();
		String type="";//小说的类型
		if(UserTypeMTr.equals("31")){
			type="武侠";
		}else if(UserTypeMTr.equals("32")){
			type="古典";
		}else if(UserTypeMTr.equals("22")){
			type="所有";
		}
		//System.out.println(type);
		List<NovelSource> listn=UPLoaderNovel.novelReader1();
		//UPLoaderNovel.readList(listn);
		Integer num=0;
		if(single=="0"){
		for (int i = 0; i < listn.size(); i++) {
			if(listn.get(i).getClassification().equals(type)){
				//listC.add(listn.get(i));
				System.out.println((++num)+"\t"+listn.get(i).getName()+"\t"+listn.get(i).getAuthor()+"\t"+listn.get(i).getPublish());
			}
		}
		//取出属于该类型的链表
		}else if(single=="1"){
			for (int i = 0; i < listn.size(); i++) {
				if(listn.get(i).getClassification().equals(type)){
					listC.add(listn.get(i));
//					System.out.println((++num)+"\t"+listn.get(i).getName()+"\t"+listn.get(i).getAuthor()+"\t"+listn.get(i).getPublish());
				}
			}
		}else if(single=="2"){
			for (int i = 0; i < listn.size(); i++) {
//				if(listn.get(i).getClassification().equals(type)){
					listC.add(listn.get(i));
				System.out.println((++num)+"\t"+listn.get(i).getName()+"\t"+listn.get(i).getAuthor()+"\t"+listn.get(i).getPublish());
//				}
			}
		}
		else if(single=="3"){
			for (int i = 0; i < listn.size(); i++) {
//				if(listn.get(i).getClassification().equals(type)){
					listC.add(listn.get(i));
//				System.out.println((++num)+"\t"+listn.get(i).getName()+"\t"+listn.get(i).getAuthor()+"\t"+listn.get(i).getPublish());
//				}
			}
		}
		return listC;
	}
	public static void SeeNovelInfo(List<NovelSource> listC,Integer num){
			//System.out.println(listC.get(num));
			String NovelAddress=listC.get(num).getAddress();//拿到小说的地址
			File f1= new File(NovelAddress);
			if(!f1.exists()){
				System.out.println("没找到文件地址");
			}
			InputStream is = null;
			InputStreamReader isr=null;
			BufferedReader bf=null;
			try {
				is = new FileInputStream(f1);
				isr=new InputStreamReader(is);
				bf=new BufferedReader(isr);
				char[] cbuf=new char[1000];
				int len =0;
				len=bf.read(cbuf);
				System.out.println(new String(cbuf));
				/*while((len=bf.read(cbuf, 0, 100))!=-1){
					System.out.println(new String(cbuf));
				}*/
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
	}
	//@param 用户输入的是哪一本书 @
	public static void downOrSee(String UserTypeMCr){
		Integer  i=Integer.valueOf(UserTypeMCr);
		while(true){
			NovelReader.showDownLoadMenu();
			BufferedReader bf1 = new BufferedReader(new InputStreamReader(System.in));
			String bf;
			try {
				bf = bf1.readLine();
			if(bf.equals("1")){
				List<NovelSource> listC=NovelAction.listNoveType("22","3");
				NovelAction.SeeNovelInfo(listC,i-1);
			}else if(bf.equals("2")){
				String a=NovelAction.NovelDown(UserTypeMCr);
				File f1=new File(a);
				if(f1.length()>0){
				System.out.println("上传成功,您上传的路径:"+a);
				}
			}else if(bf.equals("3")){
				NovelReader.actionAllAfter("41","22");
			}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	@Test
	public static String NovelDown(String UserTypeMCr){
		Integer  UserWantSeeBook=Integer.valueOf(UserTypeMCr);
		List<NovelSource> listC=NovelAction.listNoveType("22","3");
		System.out.println(UserTypeMCr);
		String UserwantBook=listC.get(UserWantSeeBook-1).getAddress();//这是系统存储小说的路径
		File f1=new File(UserwantBook);//得到文件对象
		System.out.println("请输入小说下载路径(要包含文件名字和文件的后缀)");
		BufferedReader bf1 = new BufferedReader(new InputStreamReader(System.in));
		String bfgetAddress=null;//要下载的路径
		try {
			bfgetAddress=bf1.readLine();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		if(bfgetAddress==null){
			System.out.println("空路径");
		}
		File f2 =new File(bfgetAddress);
		InputStream is=null;
		InputStreamReader isr=null;
		BufferedReader br=null;
		String UserWantDown = null;
		try {
//			System.out.println(UserwantBook);
			is= new FileInputStream(f1);
			isr= new InputStreamReader(is);
			br=new BufferedReader(isr);
			OutputStream os=null;
			OutputStreamWriter  osw=null;
			BufferedWriter bw =null;
			if(!f2.exists()){
				System.out.println("1文件不存在");
			}
			os = new FileOutputStream(f2);
			if(!f2.exists()){
				System.out.println("2文件不存在");
			}
			osw =new OutputStreamWriter(os);
			bw=new BufferedWriter(osw);
			while((UserWantDown=br.readLine())!=null){
				//System.out.println(UserWantDown);
				bw.write(UserWantDown);
			}
			if(f2.length()>0){
				System.out.println("上传成功");	
			}
			//bfgetAddress = bf1.readLine();
			bw.flush();
			if(os!=null){
				os.close();
			}
			if(osw!=null){
				osw.close();
			}
			if(bw!=null){
				bw.close();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			try {
				if(is!=null){
					is.close();
				}
				if(isr!=null){
					isr.close();
				}
				if(br!=null){
					br.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return bfgetAddress;
	
	}
}

 
<pre name="code" class="java">小说主菜单和菜单处理类
 
package com.novel.source;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;

import com.novel.login.AuthorSee;

public class NovelReader {
	public static void main(String[] args) {
//		NovelReader.action();
		NovelReader.showMainMenu();//展示主菜单
		String UserTypeM=NovelReader.actionMainMenu();//主菜单响应
		NovelReader.actionMainAfter(UserTypeM);
	}
	public static void actionMainAfter(String UserTypeM){
			if(UserTypeM=="11"){
				NovelReader.showSecondMenu();//第二个菜单
				String UserTypeMSr=NovelReader.actionSecondMenu();//判断用户输入
				NovelReader.actionSecondAfter(UserTypeMSr);
			}
			else if(UserTypeM=="12"){
				UPLoaderNovel.novelUp();
			}
			else if(UserTypeM=="13"){
			/************************显示个人信息***********************/
				//AuthorSee.AsTest();
				//AuthorSee.main(null);
			}else if(UserTypeM=="14"){
				System.out.println("退出成功");
					System.exit(0);
			}
	}
	public static void actionSecondAfter(String UserTypeMSr){
		if(UserTypeMSr=="20"){
			//NovelReader.showSecondMenu();
			NovelReader.showMainMenu();//显示主菜单
			String UserTypeM=NovelReader.actionMainMenu();//响应用户选择的主菜单功能键
			NovelReader.actionMainAfter(UserTypeM);//对用户的选择进行判断
		}
		else if(UserTypeMSr=="21"){
			NovelReader.showClassificationMenu();//显示小说目录级菜单
			String UserTypeT=NovelReader.actionThirdMenu();//响应用户选择的分类功能键
			NovelReader.actionThirdAfter(UserTypeT);//对用户的选择进行判断
		}else if(UserTypeMSr=="22"){
			NovelReader.showAllNovelListMenu();//显示小说目录级菜单
//			List<NovelSource> UserTypeT=
			NovelAction.listNoveType("22","2");//响应用户选择的得到链表
			NovelReader.showFClassificationListMenuWG2();
			String UserTypeMCr=NovelReader.actionClassMenu();//选择退出还是在线阅读或者是看第几本书
			NovelReader.actionAllAfter(UserTypeMCr,UserTypeMSr);//去找显示出来看的书
			NovelAction.downOrSee(UserTypeMCr);
		}
	}
	//@param 是用户要看哪本书,@param 要看的类型是所有
		public static void actionAllAfter(String UserTypeMCr,String UserTypeMTr){
			if(UserTypeMCr=="40"){
				NovelReader.showSecondMenu();//显示分类个子菜单
				String UserTypeMSr=NovelReader.actionThirdMenu();//判断用户输入
				NovelReader.actionThirdAfter(UserTypeMSr);//传递给分类子菜单
			}else if(UserTypeMCr=="41"){
				NovelReader.actionSecondAfter("22");
			}
			else {//这是在线阅读小说---32代表的是古典小说-1代表返回链表
				String NovelType=null;
				if(UserTypeMTr=="22"){
					NovelType="22";
				}else{
					System.out.println("没有找到所有的小说的list");
				}
				List<NovelSource> listC=NovelAction.listNoveType(NovelType,"3");//到文件里取出啊链表
				//System.out.println(listC);
				Integer  i=Integer.valueOf(UserTypeMCr);
//				System.out.println(i);//打印当前选中的小说编号
				NovelAction.SeeNovelInfo(listC,i-1);
			}
		}
	public static String actionSecondMenu(){
		String UserType;
		String UserTypeSr;
		while(true){
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			try {
				UserType = bf.readLine();
				if(UserType.equals("0")){//返回上一级目录
					UserTypeSr="20";
					return UserTypeSr;
				}
				if(UserType.equals("1")){//按目录查看
					UserTypeSr="21";
					return UserTypeSr;
				}
				if(UserType.equals("2")){//查看所有小说
					UserTypeSr="22";
					return UserTypeSr;
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static void actionThirdAfter(String UserTypeMTr){
		if(UserTypeMTr=="30"){
			NovelReader.showSecondMenu();//显示第二个子菜单
			String UserTypeMSr=NovelReader.actionSecondMenu();//判断用户输入
			NovelReader.actionSecondAfter(UserTypeMSr);
		}
		else if(UserTypeMTr=="31"){
			NovelReader.showFClassificationListMenuW();//显示武侠小说目录级菜单
			NovelAction.listNoveType(UserTypeMTr,"0");//显示武侠有几本书
			NovelReader.showFClassificationListMenuWG2();//显示是否退出和下载菜单
			String UserTypeMCr=NovelReader.actionClassMenu();//选择退出还是在线阅读
			NovelReader.actionClassAfter(UserTypeMCr,UserTypeMTr);
		}
		else if(UserTypeMTr=="32"){
			NovelReader.showGClassificationListMenuG();//显示古典小说目录级菜单
			NovelAction.listNoveType(UserTypeMTr,"0");
			NovelReader.showFClassificationListMenuWG2();//显示是否退出和下载
			String UserTypeMCr=NovelReader.actionClassMenu();//对退出还是下载做出响应
			NovelReader.actionClassAfter(UserTypeMCr,UserTypeMTr);//把值传递给处理方法,做出下面的动作
		}
	}
	//@param 是用户要看哪本书,@param 要看的类型是古典还是武侠
	public static void actionClassAfter(String UserTypeMCr,String UserTypeMTr){
		if(UserTypeMCr=="40"){
			NovelReader.showClassificationMenu();//显示分类个子菜单
			String UserTypeMSr=NovelReader.actionThirdMenu();//判断用户输入
			NovelReader.actionThirdAfter(UserTypeMSr);//传递给分类子菜单
		}
		else {//这是在线阅读小说---32代表的是古典小说-1代表返回链表
			String NovelType=null;
			if(UserTypeMTr=="31"){
				NovelType="31";
			}else if(UserTypeMTr=="32"){
				NovelType="32";
			}
			List<NovelSource> listC=NovelAction.listNoveType(NovelType,"1");//到文件里取出啊链表
			//System.out.println(listC);
			Integer  i=Integer.valueOf(UserTypeMCr);
			System.out.println(i);
			NovelAction.SeeNovelInfo(listC,i-1);
		}
	}
	//响应小说列表的用户输入
	public static String actionClassMenu(){
		String UserTypeC;
		String UserTypeCr;
		while(true){
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			try {
				UserTypeC = bf.readLine();
				if(UserTypeC.equals("0")){//小说目录返回上一层
					UserTypeCr="40";
					return UserTypeCr;
				}else{
					UserTypeCr=UserTypeC;
					return UserTypeCr;//在线阅读
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static String actionThirdMenu(){
		String UserTypeT;
		String UserTypeTr;
		while(true){
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			try {
				UserTypeT = bf.readLine();
				if(UserTypeT.equals("0")){//小说目录返回上一层
					UserTypeTr="30";
					return UserTypeTr;
				}if(UserTypeT.equals("1")){//武侠
					UserTypeTr="31";
					return UserTypeTr;
				}if(UserTypeT.equals("2")){//古典
					UserTypeTr="32";
					return UserTypeTr;
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static String actionMainMenu(){
		String UserTypeM;
		String UserTypeMr;
		while(true){
			BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
			try {
				UserTypeM = bf.readLine();
				if(UserTypeM.equals("1")){//在 线 阅 读
					UserTypeMr="11";
					return UserTypeMr;
				}if(UserTypeM.equals("2")){//上传小说
					UserTypeMr="12";
					return UserTypeMr;
				}if(UserTypeM.equals("3")){//个人信息
					UserTypeMr="13";
					return UserTypeMr;
				}if(UserTypeM.equals("4")){//个人信息
					UserTypeMr="14";
					return UserTypeMr;
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static void actionFirstOne(){
		
	}
	public static void showMainMenu(){
		System.out.println("------------主 菜 单------------------------------------");
		System.out.println("\t    1.在 线 阅 读\t\t\t\t");
		System.out.println("\t    2.上 传 小 说\t\t\t\t");
		System.out.println("\t    3.显 示 个 人 信 息\t\t\t\t");
		System.out.println("\t    4.退 出 系 统\t\t\t\t");
		System.out.println("------------请根据需要执行的操作,选择序号输入------------");
	}
	public static void showSecondMenu(){
		System.out.println("------------菜 单------------------------------------");
		System.out.println("\t    0.返 回 上 一 级 目 录\t\t\t\t");
		System.out.println("\t    1.进 入 目 录\t\t\t\t");
		System.out.println("\t    2.查 看 所 有 小 说\t\t\t\t");
//		System.out.println("\t    3.\t\t\t\t");
		System.out.println("------------请根据需要执行的操作,选择序号输入------------");
	}
	public static void showClassificationMenu(){
		System.out.println("------------分 类------------------------------------");
		System.out.println("\t    0.返 回 上 一 级 目 录\t\t\t\t");
		System.out.println("\t    1.武 侠\t\t\t\t");
		System.out.println("\t    2.古 典\t\t\t\t");
//		System.out.println("\t    3.\t\t\t\t");
		System.out.println("------------请选择分类,选择序号输入------------");
	}
	public static void showAllNovelListMenu(){
		System.out.println("------------所 有 小 说 列 表------------------------------------");
		System.out.println("序列\t名称\t作者\t出版社");
	}
	public static void showFClassificationListMenuW(){
		System.out.println("------------武 侠 小 说 列 表------------------------------------");
		System.out.println("序列\t名称\t作者\t出版社");
	}public static void showGClassificationListMenuG(){
		System.out.println("------------古 典 小 说 列 表------------------------------------");
		System.out.println("序列\t名称\t作者\t出版社");
	}
	public static void showFClassificationListMenuWG2(){
		System.out.println("------------小 说 列 表 结 束------------------------------------");
		System.out.println("------------请选择(按0可以返回上一层,或者输入小说编号在线阅读小说)------------");
	}
	public static void showDownLoadMenu(){
		System.out.println("---继续查看请按“1”,需要下载请按“2”,返回上一级目录按“3”,---");
	}
}
<img src="https://img-blog.csdn.net/20151206231620044?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值