Advertisement
Guest User

Write and Read To File JSON Newtonsofy

a guest
Jul 4th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 1.75 KB | None | 0 0
  1. Imports Newtonsoft.Json
  2.  
  3. Public Class FileHelper(Of T)
  4.  
  5.  
  6.     Function ObtenerDeArchivo(ByVal rutaArchivoTxt As String) As List(Of T)
  7.  
  8.         Dim lector As New System.IO.StreamReader(rutaArchivoTxt)
  9.         Dim alumnosSerializados As List(Of String) = New List(Of String)
  10.         Do While Not lector.EndOfStream
  11.             alumnosSerializados.Add(lector.ReadLine())
  12.         Loop
  13.         lector.Close()
  14.  
  15.         'En teoría todas las líneas no deben estar vacías pero porsiaca
  16.         'seleccionamos solo los que no están vacíos y los deserializamos
  17.         Dim alumnosDeserializados = (From a In alumnosSerializados
  18.                                      Where Not String.IsNullOrWhiteSpace(a)
  19.                                      Select JsonConvert.DeserializeObject(Of T)(a)).ToList()
  20.  
  21.         Return alumnosDeserializados
  22.     End Function
  23.  
  24.     Sub AgregarEnArchivo(ByVal rutaArchivoTxt As String, ByRef alumno As T)
  25.  
  26.         Dim grabador As System.IO.StreamWriter
  27.         grabador = My.Computer.FileSystem.OpenTextFileWriter(rutaArchivoTxt, True)
  28.         Dim alumnoSerializado = JsonConvert.SerializeObject(alumno)
  29.         grabador.WriteLine(alumnoSerializado)
  30.         grabador.Close()
  31.  
  32.     End Sub
  33.  
  34.     'o quizás te sirva más mandar toda la lista y reemplazar todo el contenido
  35.     Sub EscribirListaEnArchivo(ByVal rutaArchivoTxt As String, ByRef listaAlumnos As List(Of T))
  36.  
  37.  
  38.         Dim grabador As System.IO.StreamWriter
  39.         grabador = My.Computer.FileSystem.OpenTextFileWriter(rutaArchivoTxt, False)
  40.         For Each alumno In listaAlumnos
  41.             Dim alumnoSerializado = JsonConvert.SerializeObject(alumno)
  42.             grabador.WriteLine(alumnoSerializado)
  43.         Next
  44.         grabador.Close()
  45.  
  46.     End Sub
  47.  
  48. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement