Estás empleando el modo 'openOrCreate'. Yo creo que mejoraría mucho la cosa si empleas el método 'Append':
Código:
Dim materias As New FileStream("C:\mat01.dat",FileMode.Append,FileAccess.Write)
Ojo, porque abieto de esta manera no se puede leer, solo escribir. Si intentas leer... excepción al canto.
Tambien puedes hacerlo con
Código:
Dim salida As StreamWriter
salida = File.AppendText("C:\mat01.dat") 'Abrir para añadir
salida .WriteLine("Una linea que añado...") 'Añadir
salida .WriteLine("Y otra")
salida .Flush() 'Acabar de escribir
salida .Close() 'Cerra
Con este método, el fichero debe existir!!!
Espero que te sirva
Saludos