diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/DefaultFieldSet.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/DefaultFieldSet.java
index 759eb36ad..958255e57 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/DefaultFieldSet.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/DefaultFieldSet.java
@@ -95,6 +95,22 @@ public class DefaultFieldSet implements FieldSet {
public String readString(String name) {
return readString(indexOf(name));
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.batch.io.file.mapping.IFieldSet#readRawString(int)
+ */
+ public String readRawString(int index) {
+ return tokens[index];
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.batch.io.file.mapping.IFieldSet#readRawString(java.lang.String)
+ */
+ public String readRawString(String name) {
+ return readRawString(indexOf(name));
+ }
/*
* (non-Javadoc)
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/FieldSet.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/FieldSet.java
index df35b523a..c40b50a6b 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/FieldSet.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/io/file/mapping/FieldSet.java
@@ -61,6 +61,23 @@ public interface FieldSet {
*/
String readString(String name);
+ /**
+ * Read the {@link String} value at index 'index' including
+ * trailing whitespace (don't trim).
+ *
+ * @param index the field index.
+ * @throws IndexOutOfBoundsException if the index is out of bounds.
+ */
+ String readRawString(int index);
+
+ /**
+ * Read the {@link String} value from column with given 'name'
+ * including trailing whitespace (don't trim).
+ *
+ * @param name the field name.
+ */
+ String readRawString(String name);
+
/**
* Read the 'boolean' value at index 'index'.
*
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/FieldSetTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/FieldSetTests.java
index d2b6359b3..4fceaf14b 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/FieldSetTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/io/file/FieldSetTests.java
@@ -441,4 +441,13 @@ public class FieldSetTests extends TestCase {
long value = fs.readLong(0);
assertEquals(value, 9);
}
+
+ public void testReadRawString() {
+ String name = "fieldName";
+ String value = " string with trailing whitespace ";
+ FieldSet fs = new DefaultFieldSet(new String[] { value }, new String[]{ name });
+
+ assertEquals(value, fs.readRawString(0));
+ assertEquals(value, fs.readRawString(name));
+ }
}