From 897b1b4929b5855305ae0f13b95c5a8045a870b9 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Sun, 21 Sep 2008 22:16:31 +0000 Subject: [PATCH] Added 'charset' property to the FileToStringTransformer. --- .../transformer/FileToStringTransformer.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/transformer/FileToStringTransformer.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/transformer/FileToStringTransformer.java index a4de74cf3b..1c6a4a21dd 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/transformer/FileToStringTransformer.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/transformer/FileToStringTransformer.java @@ -17,8 +17,11 @@ package org.springframework.integration.file.transformer; import java.io.File; -import java.io.FileReader; +import java.io.FileInputStream; +import java.io.InputStreamReader; +import java.nio.charset.Charset; +import org.springframework.util.Assert; import org.springframework.util.FileCopyUtils; /** @@ -28,9 +31,21 @@ import org.springframework.util.FileCopyUtils; */ public class FileToStringTransformer extends AbstractFilePayloadTransformer { + private volatile Charset charset = Charset.defaultCharset(); + + + /** + * Set the charset name to use when copying the File to a String. + */ + public void setCharset(String charset) { + Assert.isTrue(Charset.isSupported(charset), "Charset '" + charset + "' is not supported."); + this.charset = Charset.forName(charset); + } + @Override protected final String transformFile(File file) throws Exception { - return FileCopyUtils.copyToString(new FileReader(file)); + InputStreamReader reader = new InputStreamReader(new FileInputStream(file), this.charset); + return FileCopyUtils.copyToString(reader); } }