본문 바로가기

Back-end146

[JAVA] 특정 폴더에 있는 파일 읽기 파일 경로에 있는 폴더에 있는 전체 파일을 갖고 와서 단순하게 파일 이름을 출력하는 알고리즘입니다. String fileName = ""; /*파일 경로에 있는 파일 가져오기*/ File rw = new File(filePath); /*파일 경로에 있는 파일 리스트 fileList[] 에 넣기*/ File []fileList = rw.listfiles(); /*fileList에 있는거 for 문 돌려서 출력*/ for(File file : fileList) { if(file.isFile()) { fileName = file.getName(); System.out.println("fileName : " + fileName); } } 2021. 11. 19.
[JAVA] JSONObject key 값이 null 일때 해결 방법 우리는 JSON parser/ object 등으로 제이슨 처리를 한다. { "gender" : "남성" } 이러한 데이터는 쉽게 if(jsonObject.get("gender").equals("남성")){ // key값이 gender인 json Object 의 값 체크가 가능 } 키값을 넣고 체크 가능하다. 그치만 Key값이 null일때, { "gender" : null } 널값을 가진 키라면 널포인트 익셉션 이 발생한다. if(jsonObject.get("gender").equals("남성")){ //널포인트 발생 }else if(jsonObject.get("gender").equals(null)){ //error }else if(jsonObject.get("gender").equals("null")).. 2021. 11. 15.
[Spring] Controller에서 데이터 받기 Controller은 비지니스 로직을 처리하고 데이터를 가공한다. 이때 비지니스 로직을 처리하기위해 controller에서 데이터를 받는 방법에 대해서 알아보자. 크게 HttpServletRequest, @RequestParam, @RequestBody, @ModelAtrribute, @PathVariable이 있다. 다음 URL로 요청을 보낸다고 가정하자. http://localhost:8080/getInfo?id=3 HttpServletRequest.getParameter() 클라이언트의 요청정보를 확인하게해주는 HttpServletRequest를 이용하기 @GetMapping("/getInfo"); public void getInfo(HttpServletRequest request){ log.inf.. 2021. 10. 21.
[문제해결] Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. 1. 문제상황 > 개발중 비정상적인 was 종료로 인해 다음과 같은 에러와 함께 재시작 되지 않는다. 실 운영환경에서도 이런경우가 있다. Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s). 2. 문제확인 > was 재시작을 위한 포트가 이미 사용중이기 때.. 2021. 10. 5.
[Java/jsp] 자바로 이미지를 base64 인코딩 소스로 변환하는 함수 자바로 이미지를 base64 인코딩 소스로 변환하는 함수입니다. 필요하실 때 참고하세요. public static String getBase64String( String[] imageUrl, String content ) throws Exception{ if( imageUrl.length > 0 ) { int imageUrlLength = imageUrl.length; String[] imageString = new String[ imageUrlLength ]; for( int i = 0; i < imageUrlLength; i++ ) { String filePathName = imageUrl[i].replace(“file:///”, “”); String fileExtName = filePathName... 2021. 10. 1.
ImageIO.write()를 이용하여 이미지 파일을 생성하는 예 ImageIO.write() 는 다음과 같 3가지 형태로 사용할 수 있다. static boolean write(RenderedImage im, String formatName, File output) static boolean write(RenderedImage im, String formatName, ImageOutputStream output) static boolean write(RenderedImage im, String formatName, OutputStream output) 다음은 위에 제시된 방법 중 첫번째, File 클래스를 이용하여 이미지 파일을 생성하는 예이다 3번째 방법을 이용하면 Socket 등으로 연결된 원격 시스템에 이미지 데이터를 전달할 수도 있다. // URL 클래스를 이.. 2021. 9. 30.
[Java] StringUtils.isBlank 와 StringUtils.isEmpty 차이 java에서 get() NullPointerException 일때 자바 기본 라이브러리 외에 가장 빈번하게 사용되는 라이브러리로 Apache common 라이브러리를 들 수 있다. 이 중 StringUtils 패키지는 문자열 처리 시에 유용한 기능들을 많이 제공한다. isBlank와 isEmpty의 차이점은 아래 예제와 같이 공백(whitespace) 처리이다. isBlank의 경우 공백을 blank 즉, 비어있는 값으로 처리하며 isEmpty의 경우 공백을 비어있지 않다고(isEmpty가 false) 리턴한다. StringUtils.isBlank: 공백을 빈값으로 처리 StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils.. 2021. 9. 30.
[Java] base64 인코딩 디코딩 (encoding / decoding) 일단 인코딩, 디코딩을 쉽게 설명을 하면 "hello world" 라는 단어를 인코딩을 하면 base64형태로 인코딩 됩니다. base64를 디코딩하면 "hello world"라고 나오게 되는 것이죠 자바 버전별로 사용되는게 너무많아서 찾다보니 stackoverflow에 잘 정리된 글이 있어서 참조했습니다. 1. Java 6 and Java 7 java6부터는 javax.xml.bind.DatatypeConverter를 사용할 수 있습니다. 이건 jre의 일부이면 별도의 라이브러리가 필요하지 않습니다. encoding 사용예제) byte[] message = "hello world".getBytes("UTF-8"); String encoded = DatatypeConverter.printBase64Bin.. 2021. 9. 30.
base64인코딩한 이미지를 디코딩하여 저장 public class Base64ToImgDecoder { public static boolean decoder(String base64, String target){ String data = base64.split(",")[1]; byte[] imageBytes = DatatypeConverter.parseBase64Binary(data); try { BufferedImage bufImg = ImageIO.read(new ByteArrayInputStream(imageBytes)); ImageIO.write(bufImg, "jpg", new File(target)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTr.. 2021. 9. 30.
728x90
반응형