问题描述
关于项目要求主要有以下几个:用户注册,登录(到服务器端验证);小说的分类,在线阅读,下载,上传(xml文件的操作和文件的读写)。功能与模块基本实现,就是在小说上传和在线阅读这里有问题,我之前已经保存了小说(为了验证在线阅读功能和xml操作)问题是我上传成功小说后(信息已添加到xml文件当中),返回从小说列表,添加到xml文件当中的信息可以读取出来,但要阅读我刚才上传成功的小说,即读取内容读取不出来。这是什么原因?哪里出了问题?//功能选择界面publicstaticvoidnovelInfoMenu(StringfileName){System.out.println("----------------------------------");System.out.println("0.返回上级菜单");System.out.println("1.在线阅读");System.out.println("2.下载TXT");System.out.println("----------------------------------");System.out.print("请选择:");intchoice=input.nextInt();switch(choice){case0:if(type==0){wuxia();}elseif(type==1){yanqing();}break;case1:onLineRead(fileName);break;case2:downLoad(type,fileName);break;default:System.out.println("输入有误,请正确输入!");novelInfoMenu(fileName);break;}}
//在线阅读privatestaticvoidonLineRead(StringfileName){intpage=1;//显示小说当前的页数intpageRow=20;//每页显示的行数inttotalPage=0;//小说的总页数booleanflag=true;while(flag){System.out.println("**********************************");System.out.print("当前操作:阅读"+fileName.substring(0,fileName.indexOf("."))+"nn");Object[]object=(Object[])toServer("4",newObject[]{type,fileName,page});//显示小说的总页数inttotalRow=Integer.parseInt(object[0].toString());//总行数if(totalRow%pageRow==0){totalPage=totalRow/pageRow;}elseif(totalRow%pageRow!=0){totalPage=totalRow/pageRow+1;}//显示读取的内容Stringcontent=(String)object[1];System.out.println(content);System.out.println();System.out.println("当前是第"+page+"页,一共"+totalPage+"页。"+"......,省略内容,请下载后阅读");System.out.println("**********************************");System.out.print("继续显示列表请输入1,下载TXT请输入2:");intchoice=input.nextInt();switch(choice){case1:if(type==0){wuxia();}elseif(type==1){yanqing();}break;case2:downLoad(type,fileName);flag=false;break;default:System.out.println("输入有误,请正确输入!");continue;}}}
//小说上传privatestaticvoidupload(){Novelnovel=newNovel();System.out.print("请输入小说名:");novel.setName(input.next());System.out.print("请输入作者:");novel.setAuthor(input.next());System.out.print("请输入简介:");novel.setSummary(input.next());System.out.print("请输入上传的txt(请注意路径用/或者\):");Stringpath=input.next();if(path.indexOf("/")!=-1){novel.setFileName(path.substring(path.lastIndexOf("/")+1));}elseif(path.indexOf("\")!=-1){novel.setFileName(path.substring(path.lastIndexOf("\")+1));}Booleanflag=(Boolean)toServer("6",newObject[]{type,novel,readNovelfromClient(path)});System.out.println("**********************************");if(flag){System.out.println("小说保存成功!");}else{System.out.println("上传失败!");}System.out.println("**********************************");System.out.print("继续上传请输入1,返回请输入0:");intchoice=input.nextInt();switch(choice){case0:if(type==0){wuxia();}elseif(type==1){yanqing();}break;case1:upload();break;default:System.out.println("输入有误,请正确输入!");break;}}
//阅读上传的小说publicstaticStringreadNovelfromClient(Stringpath){StringBuffersb=newStringBuffer();BufferedReaderbr=null;try{br=newBufferedReader(newFileReader(path));while(true){Stringstring=br.readLine();if(string!=null){sb.append(string+"rn");}else{break;}}}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{try{br.close();}catch(IOExceptione){e.printStackTrace();}}returnsb.toString();}
//小说的接口publicinterfaceNovelInterface{//显示小说列表publicList<Novel>getNovelList(inttype);//在线阅读publicStringonLineRead(inttype,StringfileName,intpage);//获取小说的总行数,得到小说的总页数publicintgetTatolRow(inttype,StringfileName);//小说下载publicStringdownload(inttype,StringfileName);//小说上传publicbooleanupload(inttype,Novelnovel,Stringcontent);}
//阅读小说操作Object[]objects2=(Object[])objects[1];//获得小说的类型intnovelType=Integer.parseInt(objects2[0].toString());//获得小说的文件名StringfileName=(String)objects2[1];//获得小说的当前页数intpage=Integer.parseInt(objects2[2].toString());//获得小说的总行数inttotalRow=novelInterface.getTatolRow(novelType,fileName);Stringstring=novelInterface.onLineRead(novelType,fileName,page);oos=newObjectOutputStream(socket.getOutputStream());Object[]object={totalRow,string};oos.writeObject(object);oos.flush();
//上传小说操作Object[]objects4=(Object[])objects[1];//获得小说的类型intnovelType=Integer.parseInt(objects4[0].toString());//获得novel对象Novelnovel=(Novel)objects4[1];//获得小说的内容Stringcontent=(String)objects4[2];Booleanflag=novelInterface.upload(novelType,novel,content);oos=newObjectOutputStream(socket.getOutputStream());oos.writeObject(flag);oos.flush();
是不是我“阅读上传小说”这一块的代码写的不合适,但我看了书上的例子就是这么写的。实在想不明白。请耐心的朋友帮我看看!太感谢了!
解决方案
解决方案二:
其他都做好了,就是这里有问题了。