Properties File — encoding
This tutorial explains step by step to read and write a properties file in spring boot with encoding default and UTF-8 example with example.
Sometimes, We want to read the properties file that contains non-English characters.
For example, the properties file contains UTF-8 encoding characters. The default encoding for properties file reading is ISO-8859-1 .
Spring framework loads the properties file in default encoding.
In this tutorial, you will learn how to read and write the content of a property file with a specified encoding in Java.
How to configure encoding for Spring boot to read
In this example, you will learn how to Read keys and their values from a property file spring boot application.
Let’s have a properties file — application_fr.properties which contains non-English characters.
There are many ways properties file read in spring core and boot applications.
create a Bean object returning PropertiesFactoryBean using the @Bean annotation
set encoding using setFileEncoding method
configure to read properties file from ClassPathResource setLocation method
Next, you can access the properties file mapped to member variables using @Value annotation with the below syntax
Another way, using @PropertySource annotation with value contains the name of file and encoding to `UTF-8
@PropertySource(value = “classpath:/application_properties.properties”, encoding=“UTF-8”)
read individual properties with the getProperty method with encoding
How to read from property file containing utf 8 character in java
Reading properties file is an easy way to do it in java.
You can apply encoding for file input stream as seen in the below example
catch (FileNotFoundException fie) < fie.printStackTrace(); >catch (IOException e) < e.printStackTrace(); >System.out.println(properties.getProperty("hostname")); Set keys = properties.stringPropertyNames(); for (String key : keys) < System.out.println(key + " - " + properties.getProperty(key)); >> >
Conclusion
You learned how to configure properties files to read UTF-8 character encoding in spring framework and boot as well as Java.