반응형

java 14

com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 해결하기

MalformedJsonException을 해결하는 방법을 포스팅하겠습니다. Java에서 Json data를 처리하기 위해서 Gson library를 사용할 수 있습니다. Gson을 사용하다 보면 MalformedJsonException이 발생하는 경우가 있습니다. Restful API를 지원하는 서버와 통신하기 위해서 Retrofit/Gson을 사용하는 경우에도 발생할 수 있습니다. Retrofit에서 request/response body의 Json 객체를 처리하기 위해서 어떤 json libarary를 선택할 수 있는데 Retrofit 예제 코드에도 나와있듯이 gson을 많이 사용합니다. Retrofit, gson을 사용할 때 발생할 수 있습니다. MalformedJsonException이 발생한 ..

Java 2021.09.02

[Java] InputStream을 byte 배열(byte[])로 변환

Java에서 파일을 읽어서 처리할 때 InputStream을 byte 배열(byte array)로 변환하여 사용할 경우가 있습니다. 변환하는 데 Java에서 기본으로 제공하는 ByteArrayOutputStream 클래스를 사용합니다. InputStream.read()를 통해 데이터를 읽고 ByteArrayOutputStream 객체에 데이터를 write 하여 누적시킵니다. 그리고 최종적으로 toByteArray() 함수를 호출하여 byte array로 반환할 수 있습니다. 실제 구현 예제는 아래와 같습니다. 예제 InputStream is = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int length; byte[] buffer =..

Java 2021.09.02

[Java] Ping 보내는 방법 InetAddress.isReachable()

Ping은 인터넷 IP로 접근하려는 Host에 Ping을 보내고 응답을 확인하여 Host에 접근 가능한지 확인하기 위한 도구입니다. Java의 InetAddress.isReachable() 함수는 엄밀히 얘기해서 ping utility와는 다른 방식으로 동작합니다. 본 포스트에서는 isReachable의 ping 동작방식은 다루지 않습니다. Java에서 InetAddress.isReachable() 함수를 사용해서 접근하려는 Host IP Address로 Ping을 보낼 수 있습니다. InetAddress는 Internet Protocol Address를 표현한 객체입니다. isReachable() 함수의 인자로 Timeout 값을 넣을 수 있고 Timeout 시간 이내에 Host가 응답하면 결과값이 t..

Java 2021.09.02

[Java] Float, Double 크기 비교(compare)

Float나 Double 처럼 실수 자료형을 사용하다 보면 실수 값의 크기를 비교할 때가 있습니다. 그때 Float, Double 객체에서 제공해주는 Float.compare(), Double.compare() 함수를 사용해서 실수 값을 비교할 수 있습니다. 함수 public static int compare(float f1, float f2) 매개변수 (Parameters) float f1 - 비교할 첫번째 float float f2 - 비교할 두번째 float 반환값(Returns) 반환 값이 0 인경우 - f1과 f2가 같음 반환 값이 0보다 큰 경우 - f1이 f2보다 큼 반환 값이 0보다 작은 경우 - f1이 f2보다 작음 Float.compare() 함수의 사용법을 아래 예제를 통해 알아보겠습..

Java 2021.08.29

[Java] String startsWith(), EndsWith() 구현 예제

String을 다룰 때 문자열이 어떤 문자나 문자열로 시작하는지(startsWith()), 어떤 문자나 문자열로 끝나는지(endsWith()) 체크해야 하는 경우가 존재한다. startsWith(), endsWith() 함수의 사용법을 아래 예제를 통해 알아보겠다. startsWith() boolean startsWith(String prefix) startsWith() 함수는 기준이되는 String 변수의 문자열이 인자로 전달된 문자열로 시작되면 boolean 값 true가 반환되고 인자로 전달된 문자열로 시작하지 않으면 false로 반환한다. String이 특정 문자열로 시작되는지 알 수 있다. 예제 ArrayList languages = new ArrayList(); languages.add("Py..

Java 2020.07.20

Java String을 int로 변환, int를 String으로 변환 - String to int, int to String

숫자로 구성된 문자열(String)을 int로 변환하는 방법과 int를 문자열(String)로 변환하는 예제이다. Integer 객체의 함수를 사용하면 쉽게 변환할 수 있다. 예제는 원시형 타입(primitive type)인 int로 변환하는 예제이다. 객체형 타입(래퍼형 타입, wrapper type)인 Integer로 변환이 가능한데 변환 방법 및 차이점은 아래 포스팅에서 확인할 수 있다. Java parseInt() vs valueOf() 차이점, parseFloat() vs valueOf() 차이점 String으로 표현되는 숫자를 정수로 변환할 때 Integer.parseInt()나 Integer.valueOf()를 사용하고, 실수로 변환할 때는 Float.parsefloat()나 Float.va..

Java 2020.05.27

Java 리스트(List) 구현 - ArrayList, Vector, LinkedList

리스트(List)는 가장 많이 사용되는 데이터 자료구조이다. 다수의 특정 데이터를 리스트에 추가하여 관리하기가 편리하다. 리스트는 아래 그림과 같이 논리적인 순서를 가지고 있는 자료구조이다. 기본적으로 리스트가 지원하는 API는 add(), remove(), get(), contains() 등이 있고 리스트의 데이터를 추가, 삭제 할 수 있다. 또한 인덱스(index)로 리스트의 특정 원소에 접근할 수 있다. Set 자료구조와 달리 List는 중복 데이터를 저장할 수 있고 null도 저장할 수 있다. 리스트 인터페이스(interface)를 구현한 자료형에는 ArrayList, LinkedList, Vector 등이 있고 기본 예제들을 살펴보겠다. 1. ArrayList : List를 구현한 ArrayLi..

Java 2020.05.24

Java byte array를 String으로 String을 byte array로 변환

프로그램 구현 중에 Data의 전달하는 부분을 byte array로 처리하다 보면 String으로 변환해야 하는 경우가 있습니다. Java에서 byte array(배열)를 String(문자열)으로 String을 byte array로 변환하는 예제를 살펴보겠습니다. (byte array to String, String to byte array) 추가로 byte array를 16진법(Hexadecimal) String(문자열)로 변환하는 예제도 살펴보겠습니다. 1. byte array를 String으로 변환 byte array를 String으로 변환해주는 예제이다. 아래의 예제와 같이 String의 생성자의 인자로 byte array을 넣어주면 String으로 반환이 된다. byte[] byteArray =..

Java 2020.05.15

Java parseInt() vs valueOf() 차이점, parseFloat() vs valueOf() 차이점

String으로 표현되는 숫자를 정수로 변환할 때 Integer.parseInt()나 Integer.valueOf()를 사용하고, 실수로 변환할 때는 Float.parsefloat()나 Float.valueOf()를 사용한다. Integer.parseInt()나 Integer.valueOf() 두 API는 모두 String으로 표현된 숫자를 정수로 변환해주는데 둘의 차이점을 알지 못하고 사용하는 경우가 있다. 차이점을 먼저 이야기해보면 Integer.parseInt()는 원시형 타입(primitive type)인 int를 반환해주고, Integer.valueOf()는 객체형(object data type)인 Integer를 반환해준다. 두 API의 실제 구현으로 차이점을 확인해보자. 1. Integer...

Java 2020.05.11

Java String을 Json으로, Json을 String으로 변환

Java에서 String을 Json으로 변환하고 Json을 String으로 변환시키는 예제입니다. Json은 키와 값이 쌍으로 이루어져 있고 구조가 간단하여 데이터를 전달할 때 많이 사용되는 표준 입니다. Rest API 기반의 서버 연동이나 IoT기기 연동을 위한 프로그램을 만들 때 Json을 많이 다르게 됩니다. JSONObject 기준으로 변환하는 예제를 살펴보겠습니다. Json format { "name":"John", "age":31, "city":"New York" } 1. String을 Json으로 변환하기 try { JSONObject jsonObject = new JSONObject( "{ " + "\"name\":\"John\"," + "\"age\":31," + "\"city\":\"..

Java 2020.05.04

Java List UnsupportedOperationException

List를 사용하다가 add() 나 remove() 함수를 쓸 때 UnsupportedOperationException 이 발생할 경우가 있다. List의 생성 방법에 따라 add(), remove() 사용 시, Exception을 발생할 수 있다. 예제로 살펴보자 1. 예제 List list = Arrays.asList("dog", "cat"); list.add("horse"); list.remove("dog"); Exception Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.AbstractList.add(AbstractList.java:153) at java.base/java.util...

Java 2020.04.23
반응형