diff --git a/dumux/io/container.hh b/dumux/io/container.hh
index 7799653c783a7de070492bf60931db55b1a2fedb..fe4af83274fc43e257cc0a781a80644e12439571 100644
--- a/dumux/io/container.hh
+++ b/dumux/io/container.hh
@@ -55,6 +55,20 @@ void writeContainerToFile(const Container& v,
     std::copy(v.begin(),v.end(), it);
 }
 
+/*!
+ * \brief Read an input stream into a container
+ * \param stream A standard input stream
+ * \tparam Container The container type, requires begin(), end(), push_back() method
+ */
+template<typename Container>
+Container readStreamToContainer(std::istream& stream)
+{
+    Container v;
+    std::istream_iterator<typename Container::value_type> it(stream);
+    std::copy(it, std::istream_iterator<typename Container::value_type>(), std::back_inserter(v));
+    return v;
+}
+
 /*!
  * \brief Read a simple text file into a container
  * \param filename The filename to write to
@@ -65,11 +79,8 @@ void writeContainerToFile(const Container& v,
 template<typename Container>
 Container readFileToContainer(const std::string& filename)
 {
-    Container v;
     std::ifstream infile(filename, std::ios::in);
-    std::istream_iterator<typename Container::value_type> it(infile);
-    std::copy(it, std::istream_iterator<typename Container::value_type>(), std::back_inserter(v));
-    return v;
+    return readStreamToContainer<Container>(infile);
 }
 
 } // end namespace Dumux