protected DVD readDVD() throws Exception {
		if ( mainReadHandle == null ) {
			throw new Exception("Read Handle is null.");
		}
		Read in = mainReadHandle;
		if ( !in.nextLine().isEmpty()) {
			throw new Exception("Read Error.");
		}
		if ( !in.nextLine().equals("DVDObjectB")) {
			throw new Exception("Read Error.");
		}
		// String title, long iD, int year, ArrayList<Long> style, int amount, boolean sell, boolean rent, double byprice, double rentPrice, int rentAmount
		// Ϊ乹캯׼
		String title = in.nextLine();
		long iD = in.nextLong();
		int year = in.nextInt();
		int amount = in.nextInt();
		double buyprice = in.nextDouble();
		double rentPrice = in.nextDouble();
		int rentAmount = in.nextInt();
		boolean sell = in.nextBoolean();
		boolean rent = in.nextBoolean();
		if ( !in.nextLine().equals("DVDObjectSB")) {
			throw new Exception("Read Error.");
		}	// Ϊ׼
		ArrayList<Long> style = new ArrayList<Long>();
		int iTemp = in.nextInt();
		for (int i = 0; i < iTemp; i++) {
			style.add(in.nextLong());
		}
		if ( !in.nextLine().equals("DVDObjectSE")) {
			throw new Exception("Read Error.");
		}
		if ( !in.nextLine().equals("DVDObjectE")) {
			throw new Exception("Read Error.");
		}
		return new DVD(title, iD, year, style, amount, sell, rent, buyprice, rentPrice, rentAmount);
	}