java小说上传到txt功能实现(相同的小说不能再次添加)

小说类
package com.novel.source;


import java.io.Serializable;


import com.novel.login.AuthorInt;


public class NovelSource implements Serializable{
<span style="white-space:pre">	</span>private Integer number;
<span style="white-space:pre">	</span>private String name; //小说名
<span style="white-space:pre">	</span>private String Author;//小说作者
<span style="white-space:pre">	</span>private String publish;//小说出版社
<span style="white-space:pre">	</span>private String classification;//小说分类
<span style="white-space:pre">	</span>private String showtell;//小说介绍
<span style="white-space:pre">	</span>private String address;//小说地址
<span style="white-space:pre">	</span>//重写name的方法
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public int hashCode() {
<span style="white-space:pre">		</span>final int prime = 31;
<span style="white-space:pre">		</span>int result = 1;
<span style="white-space:pre">		</span>result = prime * result + ((name == null) ? 0 : name.hashCode());
<span style="white-space:pre">		</span>return result;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public boolean equals(Object obj) {
<span style="white-space:pre">		</span>if (this == obj)
<span style="white-space:pre">			</span>return true;
<span style="white-space:pre">		</span>if (obj == null)
<span style="white-space:pre">			</span>return false;
<span style="white-space:pre">		</span>if (getClass() != obj.getClass())
<span style="white-space:pre">			</span>return false;
<span style="white-space:pre">		</span>NovelSource other = (NovelSource) obj;
<span style="white-space:pre">		</span>if (name == null) {
<span style="white-space:pre">			</span>if (other.name != null)
<span style="white-space:pre">				</span>return false;
<span style="white-space:pre">		</span>} else if (!name.equals(other.name))
<span style="white-space:pre">			</span>return false;
<span style="white-space:pre">		</span>return true;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public String toString() {
<span style="white-space:pre">		</span>return "NovelSource [number=" + number + ", name=" + name
<span style="white-space:pre">				</span>+ ", classification=" + classification + ", Author=" + Author
<span style="white-space:pre">				</span>+ ", publish=" + publish + ", showtell=" + showtell
<span style="white-space:pre">				</span>+ ", address=" + address + "]";
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public Integer getNumber() {
<span style="white-space:pre">		</span>return number;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setNumber(Integer number) {
<span style="white-space:pre">		</span>this.number = number;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public String getName() {
<span style="white-space:pre">		</span>return name;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setName(String name) {
<span style="white-space:pre">		</span>this.name = name;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public String getClassification() {
<span style="white-space:pre">		</span>return classification;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setClassification(String classification) {
<span style="white-space:pre">		</span>this.classification = classification;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public String getAuthor() {
<span style="white-space:pre">		</span>return Author;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setAuthor(String author) {
<span style="white-space:pre">		</span>Author = author;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public String getPublish() {
<span style="white-space:pre">		</span>return publish;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setPublish(String publish) {
<span style="white-space:pre">		</span>this.publish = publish;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public String getShowtell() {
<span style="white-space:pre">		</span>return showtell;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setShowtell(String showtell) {
<span style="white-space:pre">		</span>this.showtell = showtell;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public String getAddress() {
<span style="white-space:pre">		</span>return address;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>public void setAddress(String address) {
<span style="white-space:pre">		</span>this.address = address;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>/**
<span style="white-space:pre">	</span> * @param number
<span style="white-space:pre">	</span> * @param name
<span style="white-space:pre">	</span> * @param classification
<span style="white-space:pre">	</span> * @param author
<span style="white-space:pre">	</span> * @param publish
<span style="white-space:pre">	</span> * @param showtell
<span style="white-space:pre">	</span> * @param address
<span style="white-space:pre">	</span> */
<span style="white-space:pre">	</span>public NovelSource(Integer number, String name, String classification,
<span style="white-space:pre">			</span>String author, String publish, String showtell, String address) {
<span style="white-space:pre">		</span>super();
<span style="white-space:pre">		</span>this.number = number;
<span style="white-space:pre">		</span>this.name = name;
<span style="white-space:pre">		</span>this.classification = classification;
<span style="white-space:pre">		</span>Author = author;
<span style="white-space:pre">		</span>this.publish = publish;
<span style="white-space:pre">		</span>this.showtell = showtell;
<span style="white-space:pre">		</span>this.address = address;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>/**
<span style="white-space:pre">	</span> * 
<span style="white-space:pre">	</span> */
<span style="white-space:pre">	</span>public NovelSource() {
<span style="white-space:pre">		</span>super();
<span style="white-space:pre">	</span>}
}
上传功能:
package com.novel.source;

import java.io.BufferedReader;
import java.io.EOFException;
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.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.novel.login.MyObjectOutputStream;

public class UPLoaderNovel {
	public static void main(String[] args) {
		UPLoaderNovel.novelUp();
		/*List<NovelSource> ls=UPLoaderNovel.novelReader1();
		UPLoaderNovel.readList (ls);
		NovelSource nsup=UPLoaderNovel.upLoader();
		UPLoaderNovel.novelWriter(nsup);*/
	}
	public static void novelUp(){
		while(true){
			NovelSource nsup=UPLoaderNovel.upLoader();//开始上传小说
			Integer isWriterInfile=UPLoaderNovel.novelWriter(nsup);//写入小说
			List<NovelSource> ls=UPLoaderNovel.novelReader1();//读取小说,返回链表
			UPLoaderNovel.readList (ls);//读取链表,返回小说信息
			if(isWriterInfile.equals(-1)){
				System.out.println("上传 失败");
			}else{
				System.out.println("上传 成功");
				break;
			}
		}
	}
	//读取小说列表文件中的所有小说文件信息
	public static void readList(List<NovelSource> listn){
		if(listn==null){
			return ;
		}
		for (int i = 0; i < listn.size(); i++) {
			System.out.println(listn.get(i));
		}
	}
		public static List<NovelSource> novelReader1(){
			InputStream is=null;
			ObjectInputStream ois=null;
			File f1= new File("D:\\testio\\a\\novelInfo.txt");
			if(!f1.exists()&&f1.getParentFile().getPath()==null){
				System.out.println("文件不存在");
			}
			List<NovelSource> nse=null;
				try {
					is= new FileInputStream(f1);
					Object obj=null;
					try{
						ois=new ObjectInputStream(is);
						obj=ois.readObject();
						 nse=(List<NovelSource>) obj;
						 return nse;
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}catch(EOFException e){
					return null;
				}
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return null;
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally{
				try {
					is.close();
					ois.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
				return nse;
		}
		//查看链表中的书,决定是否添加
	public static Integer  chashu(List<NovelSource> listn,NovelSource nsup){
		int i=0;
		while( i<listn.size()){
			i++;
			if(listn.get(i-1).getName().equals(nsup.getName())){
				i=1000000;
				break;
			}
		}
		return i;
	}
		//将小说的基本信息输入到文件中
		public static  Integer novelWriter(NovelSource nsup){
			Integer IsWriteInFile=0;
			OutputStream os =null;
			InputStream is=null;
			ObjectOutputStream oos=null;
			ObjectInputStream ios=null;
			File f1= new File("D:\\testio\\a\\novelInfo.txt");
			if(!f1.exists()){
				f1.getParentFile().mkdirs();
			}
			Object obj=null;
			try {	
				//读取过程
				is= new FileInputStream(f1);
				ios = new ObjectInputStream(is);
//				ios.readObject();
				obj=ios.readObject();
				System.out.println("***");
				List<NovelSource> listnt=new ArrayList<NovelSource>();
					@SuppressWarnings("unchecked")
					List<NovelSource> listn=(List<NovelSource>) obj;
//					while(true){
						for (int i = 0; i < listn.size(); i++) {
							listnt.add(listn.get(i));
						}
						Integer isup=UPLoaderNovel.chashu(listn,nsup);
						if(isup!=1000000){
							listnt.add(nsup);
							IsWriteInFile=1;
							System.out.println("cgs");
						}else if(isup==1000000){
							IsWriteInFile=-1;
						}
//					}
				os= new FileOutputStream(f1);
				oos=new ObjectOutputStream(os);
				oos.writeObject(listnt);
				oos.flush();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				List<NovelSource> listnt=new ArrayList<NovelSource>();
				listnt.add(nsup);
				try {
					os= new FileOutputStream(f1);
					oos=new ObjectOutputStream(os);
					oos.writeObject(listnt);
					oos.flush();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				return null;
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally{
				try {
					is.close();
					ios.close();
					os.close();
					oos.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			return IsWriteInFile;			
		}
	//接收用户上传小说的基本信息
	public static NovelSource upLoader(){
		System.out.println("欢迎上传文件");
		System.out.println("请输入小说名字:");
		String novelName=""; //小说名
		String novelAName="";//小说作者
		String novelPName="";//小说出版社
		String novelCName="";//小说类型
		String novelTName="";//小说介绍
		String novelADName="";//小说地址
		BufferedReader bfName= new BufferedReader(new InputStreamReader(System.in));
		try {
			 novelName=bfName.readLine();
			if(novelName!=null){
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("请输入作者名字:");
		BufferedReader bAName= new BufferedReader(new InputStreamReader(System.in));
		try {
			novelAName=bAName.readLine();
			if(novelAName!=null){
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("请输入出版社名字:");
		BufferedReader bPName= new BufferedReader(new InputStreamReader(System.in));
		try {
			novelPName=bPName.readLine();
			if(novelPName!=null){
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("请输入小说类型:");
		BufferedReader bCName= new BufferedReader(new InputStreamReader(System.in));
		try {
			novelCName=bCName.readLine();
			if(novelCName!=null){
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("请输入小说所在路径(要包含文件名字和文件的后缀):");
		BufferedReader bADName= new BufferedReader(new InputStreamReader(System.in));
		try {
			novelADName=bADName.readLine();
			if(novelADName!=null){
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("请输入小说介绍:");
		BufferedReader bTName= new BufferedReader(new InputStreamReader(System.in));
		try {
			novelTName=bTName.readLine();
			if(novelTName!=null){
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		NovelSource ns= new NovelSource();
		ns.setName(novelName);
		ns.setAuthor(novelAName);
		ns.setPublish(novelPName);
		ns.setClassification(novelCName);
		ns.setShowtell(novelTName);
		ns.setAddress(novelADName);
		//System.out.println(ns);
		//System.out.println("小说上传成功");
		return ns;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值