<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="" />