본문 바로가기
반응형

호구지책/Java/Android 41

[Java] 익스에서 파일 다운로드 시 한글 깨짐 익스에서만 발견된 현상으로 크롬에서는 나타나지 않는다. 퍼센트 인코딩이라는 것이 있는데, 해당 기능이 제대로 동작하지 못해서 발생한 문제다. request.setCharacterEncoding("UTF-8"); //중략 String originalFIleName = "한글파일명.pdf"; if(client.indextOf("MSIE") != -1){ String filename = URLEncoder.encode(originalFIleName, "UTF-8").replaceAll("\\+","%20"); response.setHeader("Content-Disposition", "attacment; filename=\"" + filename +"\""); } 핵심이 되는 부분은 URLEncoder.enc.. 2023. 10. 25.
[Java] 일정 시간 뒤에 종료되는 프로그램 LocalDataTime now = LocalDateTime.now(); LocalDataTime endTime = now.plusSeconds(3); System.out.println("now : " + now); while(true){ System.out.println("Test"); now = LocalDateTime.now(); if(now.isAfter(endTime)){ System.out.println("End Time"); break; } } 얼마전에 회사에서 타임아웃 기능이 필요해 구현했던 로직입니다. while 루프 에 true 조건을 걸어주면 무한루프를 돕니다. 이때 무한루프를 탈출하는 조건으로 시간을 걸어주었습니다. 이 프로그램은 3초 뒤에 while 루프를 빠져나와 종료되는 프로그.. 2023. 9. 7.
[Android] getExternalStorageDirectory() deprecated 어플에서 이미지 저장기능이 동작하지 않아서 찾아보았다. API29 부터 사용할 수 없는 경로 값이다. getExternalStorageDirectory() 함수가 API29부터 deprecated 되었다. Environment.getExternalStorageDirectory().getAbsolutePath(); 그래서 호출 방법을 변경해야 되게 되었다. 호출방법은 스텍오버플로우에서 찾을 수 있었다. 사진폴더에 이미지를 저장하고, 공유하는 기능이었기 때문에 파라메타로 사진폴더를 지정해주었다. //사진 폴더인 경우 context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath(); //다운로드 폴더인 경우 getExternalFile.. 2022. 4. 27.
[JAVA] 현재시간을 실시간으로 가져오는 방법 Java에서 현재 시간을 가져오는 방법. 1. Calender 클래스로 가져오기(프로그램을 실행한 순간의 시간을 가져옴) DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println(dateFormat.format(cal.getTime())); Calender 클래스를 이용해서 가져오게 되면, 프로그램을 실행한 순간의 시간만 가져오고, 그 시간 값이 그대로 출력된다. 그래서 현재 시간을 실시간으로 가져오는 방법이라고 볼 수가 없다. 새로운 시간을 얻기 위해서는 프로그램을 재실행해야 한다. 이는 Date 클래스로 구해와도 동일하다. 2. Sy.. 2020. 3. 11.
[안드로이드] 카카오링크 키해시(keyhash) 이슈 kakao.sdk: ErrorResult{errorCode=-401, errorMessage=‘android keyhash mismatched! 카카오링크를 구현하다가 다음과 같은 에러를 만났다. keyhash 값이 맞지 않다는 내용인데, 분명히 예전에 잘 작동하던 키 해시였다. 카카오링크의 키 해시값을 변경한 적도 없다. 어디서 문제일까? 사실 얼마 전에 구글 플레이 스토어의 어플이 삭제된 것을 확인하고 다시 올리는 과정에서 apk로 되어 있던 어플을 app bunble로 올렸다. app bunble을 선택한 이유는 구글에서 최적화 처리를 해주기 때문이었다. 물론, 구글에서도 apll bunble 사용을 권장하고 있었다. 하지만, 카카오링크에서는 이 변화를 자동으로 감지하지 못한다. 따라서 여기에 맞게.. 2019. 10. 16.
[JAVA] Oracle Java의 유료화 Java가 오라클로 넘어간지도 꽤 되었다.오라클은 이번에도 어김없이 유료화의 압박을 시전했다.예전 Mysql의 전철을 밟는 듯 하다. 유료화를 피해가기 위해서는 Open JDK를 사용하면 된다.Open JDK는 여전히 무료다. Open JDK에도 몇가지 종류가 있는데, 나는 Zulu OpenJDK를 쓰고 있다. 한가지 궁금한 것은 그럼 구버전은 어떻게 취급되는 것인가하는 점이다. 오라클 1.8 JDK, 1.8 JRE 모두 유료화 되었다.1.7, 1.6 버전은 괜찮다. 오라클 자바를 지우고 OpenJDK를 새로 깔아야 할지,아니면 기존의 자바버전은 관계가 없다고 봐야할지. 유료화의 의미가 자동 업데이트라는 이야기도 있다. 지디넷 코리아의 기사를 잘 읽어보면 따르면, 엔터프라이즈용으로내 놓은 Java SE .. 2018. 8. 28.
반응형