JAVA: 282개의 글
StringTokenizer Class ? 문자열을 스페이스, 특정 구분자 등의 기준으로 분리할 때 사용 StringTokenizer 구문 StringTokenizer st = new StringTokenizer("문자열");// 띄어쓰기 기준으로 문자열 분리 StringTokenizer st = new StringTokenizer("문자열", "구분자");// 구분자 기준으로 문자열 분리 StringTokenizer st = new StringTokenizer("문자열", "구분자", boolean); // 구분자 기준으로 문자열 분리할 때 구분자도 Token으로 넣을지(true), 말지(false default) StringTokenizer 라이브러리 Import import java.util.Str..
스트림 (Stream) 만들기 컬렉션 스트림 Collection에 stream()이 정의되어 있어 Collection의 자손인 List와 Set을 구현한 컬렉션 클래스들은 모두 stream()으로 스트림을 생성할 수 있다. Stream Collection.stream() // List로부터 스트림 생성 List list = ARrays.asList(1,2,3,4,5); Stream intStream = list.stream(); 배열 스트림 배열을 소스로하는 스트림을 생성하는 메서드로 Stream과 Arrays에 static 메서드로 정의되어 있다. 문자열 스트림 Stream srtSTream = Stream.of("a","b","c");// 가변인자 Stream srtSTream = Sream.of(n..
Java에서 엑셀다운로드 로직을 구현한 뒤 실행을 했더니 다음과 같은 에러가 발생했다. java.lang.IllegalArgumentException: Invalid char (/) found at index (6) in sheet name '노선별 시작/종료 수집율 목록' 이는 엑셀의 제한 때문에 발생한 오류이다. 실제로 엑셀에서 워크시트에 사용할 수 없는 문자가 있다. 엑셀 제한 문자 \ / * [ ] : ? 시트명에 위의 문자가 포함되었다면 치환해줘야한다. 시트명 치환 나는 대괄호는 소괄호로 치환해주고, 나머지 특수문자는 공백으로 치환해주는 것으로 수정하였다. String sheetName = "시트명/뭐가올지 몰라요"; sheetName = sheetName.replaceAll("\\[", "\\..
[Java] Lombok 사용 시 @Data compileJava 오류 error log compile error > Task :compileJava D:\02.workspace\04.ws2022\GCBIS_H\src\main\java\kr\co\neighbor21\GCBIS_H\cmmn\vo\CmmnGridSet.java:23: warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to y..
[Java] 윈도우 cmd 명령어 실행 : Java로 실행파일 실행시키기 응용 1. Java에서 cmd 명령어 실행 Java의 Runtime 클래스를 이용하여 cmd 명령어를 실행할 수 있다. Runtime.getRuntime().exec("cmd /c " + "cmd명령어"); 2. cmd 실행 결과 받기 Runtime.exec() 로 명령어를 호출하면 그 결과가 Process 객체로 리턴받을 수 있다. 다음과 같이 Process 객체로부터 결과를 읽을 수 있다. Process로부터 InputStreamReader를 가져와 문자열을 읽는다. String cmd = "cmd 명령어"; Process p = Runtime.getRuntime().exec("cmd /c " + cmd); BufferedRea..
[Java] FTP 서버로 파일 전송(업로드) 방법 및 다계층 디렉토리 만들기 1. 의존성 주입 (pom.xml) commons-net commons-net 3.3 2. FTP 생성자 코드 import java.io.IOException; import java.io.InputStream; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; public class FTPControl { private FTPClient ftpClient; public FTPControl() { this.ftpClient = new FTPClient(..
[Java] POI 암호걸린 EXCEL 풀고 데이터 읽어오기 - 의존성 추가 (Maven) 엑셀 복호화 기능은 POI 3.16 버전 이후로 사용가능하다. org.apache.poi poi 3.16 org.apache.poi poi-ooxml 3.16 org.apache.poi poi-ooxml-schemas 3.16 commons-codec commons-codec 1.11 1. Controller 여기서 colM 이나 password를 고정 값으로 넣었지만, 파라메터 데이터나 동적으로 설정가능하다 @RequestMapping(value="/uldExcel.do", method = RequestMethod.POST, consumes = "multipart/form-data", produces="text/..
[Java] POI Excel CellStyle 버전 업 후 Deprecated 된 속성 알아보기 POI 버전을 변경하면서 HSSFCellStyle 클래스에서 제공하던 것들이 Deprecated 된 것이 많았다. 관련해서 버전에 따라 어떻게 수정하면 되는 지 살펴보자. Deprecated 란, 곧 삭제될 메서드임을 알리는 어노테이션을 의미한다. 기존에 사용하던 버전 - 의존성 추가 ① Maven 인 경우 org.apache.poi poi 3.13-beta1 ② Gradle 인 경우 compile group: 'org.apache.poi', name: 'poi', version: '3.13-beta1' - Java Cell Style HSSFWorkbook wb = new HSSFWorkbook(); Ce..
[Java] 추상클래스와 인터페이스 차이 추상클래스 (abstract class) - 정의 : 한 개 이상의 추상메서드를 가지는 클래스 - 목적 : 추상메서드는 선언만되며 구현이 되지 않은 불완전한 메서드이므로 객체로 생성되지 않는다. 구분 일반 클래스와 추상 클래스의 차이 예시 일반 클래스 세부적이고, 구체적 고양이, 사자, 강아지 추상 클래스 추상적 고양이과, 개과 추상메서드 - 정의 : 내용이 없는 메서드, 구현(정의)는 하지 않고 선언만 한 메서드 - 목적 : 메서드의 내용이 너무 일반적인 내용이므로 부모 클래스에서 구체화하여 정의할 필요가 없을 경우, 추상메서드로 선언만하고 상속받은 자식 클래스에서 재정의하도록 할 때 사용 추상 클래스는 반드시 하나 이상의 추상메서드를 가지며, 객체를 생성할 수..
[Java] Spring Controller 파라미터 값 가져오기 (HttpServletRequest, @RequestParam, @RequestBody, @ModelAttribute) 일반적인 웹 프로젝트 구성에서 Controller 레벨에서 응답을 받고 비지니스 로직을 처리한 후에 다시 View 레벨로 넘어간다. 이 부분에서 파라미터를 어떻게 받고 어떻게 넘기는지에 대한 방법을 정리하고자 한다. HttpServletRequest.getParameter() 아래소스처럼 HttpServletRequest의 getParameter() 메서드를 이용하여 파라미터 값을 가져올 수 있다. 이때 parameter로 보낸 변수명과 getParameter("변수명") 에 들어갈 변수명이 일치해야한다. @Request..