/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.bt1091;
import java.io.Serializable;
import java.util.Scanner;
/**
*
* @author teacher
*/
public class Book implements Serializable{
String bookName;
String authorName;
float price;
String releasedDate;
String manufacturerName;
public Book() {
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthorName() {
return authorName;
}
public void setAuthorName(String authorName) {
this.authorName = authorName;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getReleasedDate() {
return releasedDate;
}
public void setReleasedDate(String releasedDate) {
this.releasedDate = releasedDate;
}
public String getManufacturerName() {
return manufacturerName;
}
public void setManufacturerName(String manufacturerName) {
this.manufacturerName = manufacturerName;
}
@Override
public String toString() {
return "bookName=" + bookName + ", authorName=" + authorName + ", price=" +
price + ", releasedDate=" + releasedDate + ", manufacturerName=" + manufacturerName;
}
public String getFileLine() {
return bookName + ", " + authorName + ", " +
price + ", " + releasedDate + ", " + manufacturerName + "\n";
}
public void display() {
System.out.println(this);
}
public void input() {
Scanner scan = new Scanner(System.in);
System.out.println("Nhap ten sach: ");
bookName = scan.nextLine();
System.out.println("Nhap tac gia: ");
authorName = scan.nextLine();
System.out.println("Nhap gia: ");
price = Float.parseFloat(scan.nextLine());
System.out.println("Ngay xuat ban: ");
releasedDate = scan.nextLine();
System.out.println("Nam xuat ban: ");
manufacturerName = scan.nextLine();
}
public void parse(String line) {
try {
String arr[] = line.split(", ");
bookName = arr[0];
authorName = arr[1];
price = Float.parseFloat(arr[2]);
releasedDate = arr[3];
manufacturerName = arr[4];
} catch(Exception e) {
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.bt1091;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author teacher
*/
public class Main {
static List<Book> bookList = new ArrayList<>();
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
int choose;
do {
showMenu();
choose = Integer.parseInt(scan.nextLine());
switch(choose) {
case 1:
input();
break;
case 2:
display();
break;
case 3:
sortByAuthor();
break;
case 4:
saveFile();
break;
case 5:
readFile();
break;
case 6:
saveBinaryFile();
break;
case 7:
readBinaryFile();
break;
case 8:
System.out.println("Thoat!!!");
break;
default:
System.out.println("Nhap sai!!!");
break;
}
} while (choose != 8);
}
static void showMenu() {
System.out.println("1. Nhap N sach");
System.out.println("2. Hien thi");
System.out.println("3. Sap xep theo tac gia");
System.out.println("4. Luu file books.txt");
System.out.println("5. Doc file books.txt");
System.out.println("6. Luu file books.dat");
System.out.println("7. Doc file books.dat");
System.out.println("8. Thoat");
System.out.println("Chon: ");
}
private static void input() {
System.out.println("Nhap so sach can them: ");
int N = Integer.parseInt(scan.nextLine());
System.out.println("===== BAT DAU NHAP ======");
for (int i = 0; i < N; i++) {
System.out.println("+ Nhap quan sach: " + (i + 1));
Book book = new Book();
book.input();
bookList.add(book);
}
System.out.println("===== KET THUC NHAP =====");
}
private static void display() {
System.out.println("===== DANH SACH SACH ===== ");
for (Book book : bookList) {
book.display();
}
}
private static void sortByAuthor() {
Collections.sort(bookList, new Comparator<Book>() {
@Override
public int compare(Book o1, Book o2) {
return o1.getAuthorName().compareToIgnoreCase(o2.getAuthorName());
}
});
System.out.println("===== KET QUA SAU SAP XEP =====");
display();
}
private static void saveFile() {
String filename = "books.txt";
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filename);
for (Book book : bookList) {
byte[] data = book.getFileLine().getBytes("utf8");
fos.write(data);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
System.out.println("===== GHI FILE THANH CONG =====");
}
private static void readFile() {
String filename = "books.txt";
FileReader reader = null;
BufferedReader bufferedReader = null;
try {
reader = new FileReader(filename);
bufferedReader = new BufferedReader(reader);
String line;
while((line = bufferedReader.readLine()) != null) {
line = line.trim();
if(!line.isEmpty()) {
Book book = new Book();
book.parse(line);
bookList.add(book);
}
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(reader != null) {
try {
reader.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
System.out.println("===== DOC FILE THANH CONG =====");
}
private static void saveBinaryFile() {
String filename = "books.dat";
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(filename);
oos = new ObjectOutputStream(fos);
oos.writeObject(bookList);
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(oos != null) {
try {
oos.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
System.out.println("===== LUU FILE NHI PHAN THANH CONG =====");
}
private static void readBinaryFile() {
String filename = "books.dat";
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(filename);
ois = new ObjectInputStream(fis);
bookList = (List<Book>) ois.readObject();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(ois != null) {
try {
ois.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(fis != null) {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
System.out.println("===== DOC FILE THANH CONG =====");
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.gokisoft.bt1091;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.DeflaterInputStream;
import java.util.zip.InflaterOutputStream;
/**
*
* @author teacher
*/
public class Test {
public static void main(String[] args) {
// zip();
upzip();
}
static void zip() {
String file = "vidu.txt";
String zipFile = "vidu_test.zip";
FileInputStream fis = null;
DeflaterInputStream dis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file);
dis = new DeflaterInputStream(fis);
fos = new FileOutputStream(zipFile);
int code;
while((code = dis.read()) != -1) {
fos.write(code);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(dis != null) {
try {
dis.close();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(fis != null) {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
private static void upzip() {
String file = "vidu_test.zip";
String unzipFile = "vidu_test.txt";
FileInputStream fis = null;
InflaterOutputStream ios = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file);
fos = new FileOutputStream(unzipFile);
ios = new InflaterOutputStream(fos);
int code;
while((code = fis.read()) != -1) {
ios.write(code);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(fis != null) {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(ios != null) {
try {
ios.close();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
Ứng Dụng Học
Theo dõi cập nhật nội dung học trên Youtube & Facebook
Thông Tin Liên Hệ
Công Ty Cổ Phần Công nghệ ZicZac Việt Nam.
Website: https://gozic.vn
SĐT: 096 - 70 25 996
Email: ziczacgroup@gmail.com
Thiết kế webiste chuyên nghiệp
Thiết kế phần mềm quản trị
Thiết kế ứng dụng Android
Thiết kế ứng dụng IOS
Thiết kế Web App
Hỗ trợ Digital Marketing
Hỗ trợ quảng cáo Google Ads
Hỗ trợ quảng cáo Facebook Ads
Hỗ trợ SEO Website