71 lines
2.1 KiB
C#
71 lines
2.1 KiB
C#
using System.IO;
|
|
using System.Xml.Serialization;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Global.API.Util
|
|
{
|
|
public static class FileUtils
|
|
{
|
|
public static void WriteToJsonFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
|
|
{
|
|
TextWriter writer = null;
|
|
try
|
|
{
|
|
var contentsToWriteToFile = JsonConvert.SerializeObject(objectToWrite, Formatting.Indented);
|
|
writer = new StreamWriter(filePath, append);
|
|
writer.Write(contentsToWriteToFile);
|
|
}
|
|
finally
|
|
{
|
|
writer?.Close();
|
|
}
|
|
}
|
|
|
|
public static T ReadFromJsonFile<T>(string filePath) where T : new()
|
|
{
|
|
TextReader reader = null;
|
|
try
|
|
{
|
|
reader = new StreamReader(filePath);
|
|
var fileContents = reader.ReadToEnd();
|
|
return JsonConvert.DeserializeObject<T>(fileContents);
|
|
}
|
|
finally
|
|
{
|
|
reader?.Close();
|
|
}
|
|
}
|
|
|
|
public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
|
|
{
|
|
TextWriter writer = null;
|
|
try
|
|
{
|
|
var serializer = new XmlSerializer(typeof(T));
|
|
writer = new StreamWriter(filePath, append);
|
|
serializer.Serialize(writer, objectToWrite);
|
|
}
|
|
finally
|
|
{
|
|
if (writer != null)
|
|
writer.Close();
|
|
}
|
|
}
|
|
|
|
public static T ReadFromXmlFile<T>(string filePath) where T : new()
|
|
{
|
|
TextReader reader = null;
|
|
try
|
|
{
|
|
var serializer = new XmlSerializer(typeof(T));
|
|
reader = new StreamReader(filePath);
|
|
return (T)serializer.Deserialize(reader);
|
|
}
|
|
finally
|
|
{
|
|
if (reader != null)
|
|
reader.Close();
|
|
}
|
|
}
|
|
}
|
|
} |