192.168.60.32

  • FTP 라이브러리 활용
  • 비밀번호 입력 -> 조합해서 넣어보기
  • 비밀번호에 0 이 없다면 "1"과 "0001"를 구분할 필요 없지만...
import java.io.File;
import java.util.Scanner;

import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPFile;
//비밀번호 입력말고 조합해서
public class Main {
	public static void main(String[] args) {//main에서는 드로우 하지 말것
		Scanner sc = new Scanner(System.in);
		FTPClient client = new FTPClient();
		while(true) {
			System.out.println("===FTP Client Program===");
			System.out.println("1. Connect FTP Server");
			System.out.println("2. Exit Program");
			System.out.print(">>>");
			String input = sc.nextLine();

			try {

				if(input.contentEquals("1")) {

					System.out.println("input url");
					System.out.print(">>>");
					String url = sc.nextLine();				
					client.connect(url);

					System.out.println("input port");
					System.out.print(">>>");
					String port = sc.nextLine();	

					System.out.println("try to connect : "+url+"(port : "+port+")");

					System.out.println("input id");
					System.out.print(">>>");
					String id = sc.nextLine();

					//System.out.println("input password");
					//System.out.print(">>>");
					//String password = sc.nextLine();

					String password = null;


					pw:for(int i=0;i<10;i++){ //비번 4자리 조합 0000~9999
						for(int j=0;j<10;j++) {
							for(int k=0;k<10;k++) {
								for(int h=0;h<10;h++) {
									password = Integer.toString(i)
											+Integer.toString(j)
											+Integer.toString(k)
											+Integer.toString(h);
									try {
										client.login(id, password);
										
										break pw; //로그인 성공시 다음, 실패시 재조합
									}catch(Exception e) {
										System.out.println(password);
										e.printStackTrace();		

									}
								}
							}
						}
					}

					System.out.println("Login Success");

					while(true) {
						System.out.println("1. Upload File"); 
						System.out.println("2. Download File");
						System.out.println("3. Disconnect FTP Server");
						System.out.println("4. Delete File");
						System.out.print(">>>");
						String input2 = sc.nextLine();

						if(input2.contentEquals("1")) {
							try {
								System.out.println("input upload file name");
								System.out.print(">>>");
								String upload = sc.nextLine();

								client.upload(new java.io.File(upload));
							}catch(Exception e) {
								e.printStackTrace();

							}
							continue;

						}else if(input2.contentEquals("2")) {
							try {
								FTPFile[] list = client.list();
								for(int i=0;i< list.length; i++) {
									System.out.println("파일명 : "+list[i].getName()+"	사이즈 : "+list[i].getSize());//파일리스트 출력
								}


								System.out.println("input remoteFileName");//받을 파일 이름
								System.out.print(">>>");
								String remoteFileName = sc.nextLine();

								System.out.println("input localFile");// 저장할 이름
								System.out.print(">>>");
								String localFile = sc.nextLine();

								client.download(remoteFileName, new File(localFile));//경로 안쓰면 프로젝트 폴더에 저장
								//참조자료형 > 인스턴스 생성하고 주소값 입력해야
								//파일 인코딩 ANSI로 저장, 내용이 있어야 전송
								System.out.println("Success! F5를 눌러 확인하세요.");
							}catch(Exception e) {
								e.printStackTrace();

							}
							continue;

						}else if(input2.contentEquals("3")) {

							client.disconnect(true);
							System.out.println("Disconnect FTP Server");

							continue;

						}else if(input2.contentEquals("4")) {

							try {
								FTPFile[] list = client.list();
								for(int i=0;i< list.length; i++) {
									System.out.println("파일명 : "+list[i].getName()+"	사이즈 : "+list[i].getSize());//파일리스트 출력

								}

								System.out.println("input Delete FileName");
								System.out.print(">>>");
								String Delete = sc.nextLine();
								client.deleteFile(Delete);
								System.out.print("삭제완료");
							}catch(Exception e) {
								e.printStackTrace();

							}
							continue;

						}else {
							System.out.println("메뉴를 다시 확인해 주세요.");

						}

					}

				}else if (input.contentEquals("2")) {

					System.out.println("프로그램 종료");
					System.exit(0);    

				}else {
					System.out.println("메뉴를 다시 확인해 주세요.");
				}

			}catch(Exception e) {
				e.printStackTrace();

			}

		}

	}
}

뮤직플레이어

http://www.javazoom.net/javalayer/documents.html

 

Java MP3 Links - Documentation

- API Documentation - JLayer-based projects jlGui - MP3 player, WinAmp clone. MP3SPI - MP3 plugin for J2SE. JLayer C# - C# port of JLayer. Plaberbu - Karaoke MP3 player. jAmp - Another WinAmp clone. Human iPod - Halloween funny contest. KJ Player - Cross-f

www.javazoom.net

import java.io.FileInputStream;
import java.util.Scanner;

import javazoom.jl.player.Player;

public class Main {

	public void Play() {

	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.println("노래를 선택하세요.");
		System.out.println("1. 너를만나");
		System.out.println("2. 아무노래");
		System.out.println("3. If the world was ending");
		System.out.print("선택 > ");
		String input = sc.nextLine();

		if(input.contentEquals("1")) {

			try {
				FileInputStream fis = new FileInputStream("D:\\디지털컨버전스2월\\새 폴더\\Library-Jlayer\\폴킴-너를만나.mp3");
				Player playMp3 = new Player(fis);
				playMp3.play();

			} catch (Exception e) {
				System.out.println(e);
			}



		}else if(input.contentEquals("2")) {

			try {
				FileInputStream fis = new FileInputStream("D:\\디지털컨버전스2월\\새 폴더\\Library-Jlayer\\ZICO-아무노래.mp3");
				Player playMp3 = new Player(fis);
				playMp3.play();
			} catch (Exception e) {
				System.out.println(e);
			}



		}else if(input.contentEquals("3")) {

			try {
				FileInputStream fis = new FileInputStream("D:\\디지털컨버전스2월\\새 폴더\\Library-Jlayer\\If The World Was Ending.mp3");
				Player playMp3 = new Player(fis);
				playMp3.play();
			} catch (Exception e) {
				System.out.println(e);
			}

		}

	}
}

Mail

https://javaee.github.io/javamail/docs/api/

 

JavaMail API documentation

 

javaee.github.io


import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class MainEntry {
	static final String FROM = "okeydoke2@naver.com";
	static final String FROMNAME = "hk";
	static final String TO = "mystark@hanmail.net";

	static final String SMTP_USERNAME = "okeydoke2";
	static final String SMTP_PASSWORD = "";

	static final String HOST = "smtp.naver.com";
	static final int PORT = 25; // 25말고 다른 번호는 보안 어쩌구~!

	static final String SUBJECT = "메일 제목";

	static final String BODY = String.join(
			System.getProperty("line.separator"),
			"<h1>메일 내용</h1>",
			"<p>이 메일은 자바로 보낸 메일입니다!</p>."
			);

	public static void main(String[] args) throws Exception {
		Properties props = System.getProperties();
		props.put("mail.transport.protocol", "smtp");
		props.put("mail.smtp.port", PORT); 
		props.put("mail.smtp.starttls.enable", "true");
		props.put("mail.smtp.auth", "true");

		Session session = Session.getDefaultInstance(props);

		MimeMessage msg = new MimeMessage(session);
		msg.setFrom(new InternetAddress(FROM, FROMNAME));
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
		msg.setSubject(SUBJECT);
		msg.setContent(BODY, "text/html;charset=euc-kr");

		Transport transport = session.getTransport();

		try {
			System.out.println("Sending...");

			transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
			transport.sendMessage(msg, msg.getAllRecipients());

			System.out.println("Email sent!");
		} catch (Exception ex) {
			ex.printStackTrace();

		} finally {

			transport.close();

		}
	}
}

저장소 형태의 클래스,  VO , DTO

//1)저장소 형태의 클래스 VO(밸류오브젝트 값개체) 또는 DTO(데이터 트랜스퍼 오브젝트)
//2)막강한 기능의 라이브러리
public class Student {
	private String id;
	private String name;

	private int kor;
	private int eng;
	private int math;

	public Student() {}
	public Student(String id, String name, int kor, int eng, int math) {
		super();
		this.id =  id;
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.math = math;		
	}

	public int getSum() {
		return this.kor  + this.eng + this.math;
	}

	public double getAvg() {
		return getSum() / 3.0;
	}

	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKor() {
		return kor;
	}
	public void setKor(int kor) {
		this.kor = kor;
	}
	public int getEng() {
		return eng;
	}
	public void setEng(int eng) {
		this.eng = eng;
	}
	public int getMath() {
		return math;
	}
	public void setMath(int math) {
		this.math = math;
	}

}
import java.util.Scanner;
//변수 :한개씩만 넣을 수 있음
//배열 :여러데이터 담을 수 있지만 자료형이 같아야
//(C언어)구조체 : 서로 다른 자료형을 묶을 수 있음, 단 기능을 묶을 수없다.
//클레스 : 데이터를 보관하는 저장소, 값과 기능을 묶어 저장
public class Main {//데이터를 보관하는 용도로서의 클래스

	public static void printStudent(Student std) {
		System.out.println(std.getName()
				+"\t"+std.getKor()
				+"\t"+std.getEng()
				+"\t"+std.getMath()
				+"\t"+std.getSum()
				+"\t"+std.getAvg()
				);
	}

	public static void main(String[] args) {
		// 학생정보
		// 학번 / 이름 / 국어 영어 수학 점수

		//		String[] 학번 = new String[50];
		//		String[] 이름 = new String[50];
		//		항목별 배열이 여러개일 경우 꼬일 수도...

		Student[] stds = new Student[10]; // Student형 인스턴스 개수 0개
		//배열의 주소를 저장할 공간, Student형 변수를 10개 생성

		int id = 1001;
		int index = 0; //학생 배열의 번호

		Scanner sc = new Scanner(System.in);

		while(true) {
			try {
				System.out.println(" ===== 학생 관리 시스템 ===== ");
				System.out.println("1. 신규 정보 등록");
				System.out.println("2. 학생 정보 조회");

				System.out.println("3. 학생 정보 검색 (이름)");
				System.out.println("4. 학생 정보 삭제 (학번)");
				//인스턴스 자체가 사라져야함, 뒤의 값들이 땡겨져 덮어쓰기

				System.out.println("5. 종료하기");
				String menu = sc.nextLine();

				if(menu.contentEquals("1")) { 

					System.out.print("학생 이름 : ");
					String name = sc.nextLine();

					System.out.print("국어 점수 : ");
					int kor = Integer.parseInt(sc.nextLine());

					System.out.print("영어 점수 : ");
					int eng = Integer.parseInt(sc.nextLine());

					System.out.print("수학 점수 : ");
					int math = Integer.parseInt(sc.nextLine());


					Student tmp = new Student(String.valueOf(id++),name,kor,eng,math); // "" + id++
					//지역이 사라지면 지역변수 tmp 없어짐
					stds[index++] = tmp; // 인스턴스 살아남음
					//10칸 보다 더 입력되면 에러 


				}else if(menu.contentEquals("2")) {
					System.out.println(" ===== 학생 정보 목록 ===== ");
					System.out.println("이름\t국어\t영어\t수학\t합계\t평균");
					for(int i =0; i< index; i++) {
						printStudent(stds[i]);
					}
				}else if(menu.contentEquals("3")) {

					System.out.print("검색할 학생 이름 : ");
					String search = sc.nextLine();

					boolean checkFlag = false;//플래그 기법
					//반복문 안에서 검색하고자 하는 이름이 한번이라도 발견되는지 점검하는 변수
					for(int i =0; i< index; i++) {
						if(stds[i].getName().contentEquals(search)) {  //문자열 비교!
							System.out.println("이름\t국어\t영어\t수학\t합계\t평균");
							printStudent(stds[i]);
							checkFlag = true;
						}
					}
					if(!checkFlag) {System.out.println("등록된 정보가 없습니다.");}

				}else if(menu.contentEquals("4")) {

					System.out.print("삭제할 학생 학번 : ");
					String delect = sc.nextLine();					
					boolean checkFlag = false;

					for(int i =0; i< index; i++) {
						if(stds[i].getId().contentEquals(delect)) {  

							for(int j =i; j<index; j++) {
								stds[j] = stds[j+1];
							}
							index--; // 삭제후 등록 불가문제 해결?
							checkFlag = true;
						}
					}

					if(!checkFlag) {System.out.println("삭제할 정보가 없습니다.");}
				}else if(menu.contentEquals("5")) {
					System.out.println("시스템을 종료합니다.");
					System.exit(0);			
				}else {
					System.out.println("메뉴를 다시 확인하세요");			
				}
			}catch(Exception e) {
				//				e.printStackTrace();

			}
		}
	}

}

+ Recent posts