Index: tol/btol/vmatrix_type/tol_bvmat.h
===================================================================
--- tol/btol/vmatrix_type/tol_bvmat.h	(revision db454cde3f13a6fab3eb8d550813bb199e2a1428)
+++ tol/btol/vmatrix_type/tol_bvmat.h	(revision f661cb9ea58e7510cc5ae6cdbebdc3aadb398c18)
@@ -342,4 +342,7 @@
   bool   Read (BOisLoader& ois, BStream* stream);
   
+  bool Write(const BText& filePath) const;
+  bool Read(const BText& filePath);
+
   static size_t bytes(const cholmod_R_dense* a);
   static size_t bytes(const cholmod_R_sparse* a);
Index: tol/btol/vmatrix_type/vmat_io.cpp
===================================================================
--- tol/btol/vmatrix_type/vmat_io.cpp	(revision db454cde3f13a6fab3eb8d550813bb199e2a1428)
+++ tol/btol/vmatrix_type/vmat_io.cpp	(revision f661cb9ea58e7510cc5ae6cdbebdc3aadb398c18)
@@ -26,4 +26,6 @@
 #include <tol/tol_oiscreator.h>
 #include <tol/tol_oisloader.h>
+#include <tol/tol_oisstream_dir.h>
+#include <tol/tol_bdir.h>
 #include <stdarg.h>
 
@@ -858,2 +860,51 @@
 
 
+////////////////////////////////////////////////////////////////////////////////
+  bool BVMat::Write(const BText& filePath) const
+//Exporting method
+////////////////////////////////////////////////////////////////////////////////
+{
+  BText dirPath = GetFilePath(filePath);
+  BText fileName = GetFileName(filePath);
+  BDirStreamHandler dir;
+  if(!dir.Connect(dirPath,BStreamHandler::BSHOM_WRITE,true)) { return(false); }
+  BStream* stream = dir.Open(fileName, fileName, -1);
+  BOisCreator ois;
+  ois.SetControl();
+  ois.options_.compressor_.serialization_.engine_ = BOis::BSE_NONE_;
+  char* buf = ois.control_.oisEngine_.oisVersion_.Buffer();
+  int len = ois.control_.oisEngine_.oisVersion_.Length();
+  stream->Write(&len, sizeof(int), 1);
+  stream->Write(buf, 1, len+1);
+  stream->Write(&ois.control_.machine_.isLittleEndian_, sizeof(bool), 1);
+  stream->Write(&ois.options_.compressor_.serialization_.engine_, sizeof(BOis::BSerialEngine), 1);
+  stream->Write(&ois.options_.compressor_.serialization_.minSizeCmprs_, sizeof(int), 1);
+  stream->Write(&ois.options_.compressor_.serialization_.level_, sizeof(int), 1);
+  bool ok = Write(ois,stream);
+  stream->Close();
+  return(ok);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+  bool BVMat::Read(const BText& filePath) 
+//Exporting method
+////////////////////////////////////////////////////////////////////////////////
+{
+  BText dirPath = GetFilePath(filePath);
+  BText fileName = GetFileName(filePath);
+  BDirStreamHandler dir;
+  if(!dir.Connect(dirPath,BStreamHandler::BSHOM_READ,true)) { return(false); }
+  BStream* stream = dir.Open(fileName, fileName, -1);
+  BOisLoader ois;
+  int len;
+  stream->Read(&len, sizeof(int), 1);
+  ois.control_.oisEngine_.oisVersion_.PutLength(len);
+  stream->Read( ois.control_.oisEngine_.oisVersion_.Buffer(), 1, len+1);
+  stream->Read(&ois.control_.machine_.isLittleEndian_, sizeof(bool), 1);
+  stream->Read(&ois.options_.compressor_.serialization_.engine_, sizeof(BOis::BSerialEngine), 1);
+  stream->Read(&ois.options_.compressor_.serialization_.minSizeCmprs_, sizeof(int), 1);
+  stream->Read(&ois.options_.compressor_.serialization_.level_, sizeof(int), 1);
+  bool ok = Read(ois,stream);
+  stream->Close();
+  return(ok);
+}
Index: tol/btol/vmatrix_type/vmatgra.cpp
===================================================================
--- tol/btol/vmatrix_type/vmatgra.cpp	(revision db454cde3f13a6fab3eb8d550813bb199e2a1428)
+++ tol/btol/vmatrix_type/vmatgra.cpp	(revision f661cb9ea58e7510cc5ae6cdbebdc3aadb398c18)
@@ -2704,4 +2704,33 @@
 }
 
+//--------------------------------------------------------------------
+DeclareContensClass(BDat, BDatTemporary, BDatVMatWriteFile);
+DefExtOpr(1, BDatVMatWriteFile, "VMatWriteFile", 2, 2,
+  "Text VMatrix",
+  "(Text filePath, VMatrix V)",
+  I2("Writes a virtual matrix into a binary file.",
+     "Escribe una matriz virtual en un fichero binario."),
+    BOperClassify::MatrixAlgebra_);
+//--------------------------------------------------------------------
+void BDatVMatWriteFile::CalcContens()
+//--------------------------------------------------------------------
+{
+  contens_=VMat(Arg(2)).Write(Text(Arg(1)));
+}
+
+//--------------------------------------------------------------------
+DeclareContensClass(BVMat, BVMatTemporary, BVMatReadFile);
+DefExtOpr(1, BVMatReadFile,  "VMatReadFile", 1, 1, "Text",
+  "(Text filePath)",
+  I2("Reads a virtual matrix from a binary file.",
+     "Lee una matriz virtual desde un fichero binario."),
+BOperClassify::MatrixAlgebra_);
+//--------------------------------------------------------------------
+void BVMatReadFile::CalcContens()
+//--------------------------------------------------------------------
+{
+  contens_.Read(Text(Arg(1)));
+}
+
 /*
 //--------------------------------------------------------------------
