using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using LitJson;
namespace File_ReadWrite
{
//1.首先要拿到一个文件,
struct ChildText
{
public string HZ_name;
public string HZ_ID;
public string HZ_Count;
public List<string> HZ_Merge;
}
class ReadTxtToJson
{
//发现有可以重复使用的变量了
private string Filepath1 = Directory.GetCurrentDirectory();
private string HaveRead;
public string Filepath
{
get
{
return Filepath1;
}
set
{
Filepath1 = value;
}
}
string writePath = Directory.GetCurrentDirectory() + @"\HZjson.txt";
ChildText container = new ChildText();
//1.读一个文件【一个流指向路径 2.把这个流读进BYTE数组 3.转换成string】
public void ReadFile(string FilePath)
{
Filepath = Filepath + FilePath;
Console.WriteLine(Filepath);
bool IsReaded;
do
{
if (Directory.Exists(Filepath))
{
Console.WriteLine("路径不存在,请检查!");
break;
}
FileStream pFile = new FileStream(Filepath, FileMode.Open);//第一种
//FileStream mytxt = File.OpenRead(Filepath);//第二种拿到流的方法
Byte[] FileBuffer = new byte[(int)pFile.Length];//构建一个缓冲池
int ReadFileLenght = pFile.Read(FileBuffer, 0, (int)pFile.Length);//把拿到的流文件读到缓冲池中去
HaveRead = System.Text.Encoding.UTF8.GetString(FileBuffer);
Console.WriteLine(HaveRead);
IsReaded = true;
pFile.Close();
//pFile.Write(Mytxt,0,Mytxt.Length);//把文件流写到字节数组中
} while (false);
if (HaveRead != null)
ToJson(HaveRead);
}
//1.拿到一个字符串的文本 2.字符串分割 3.定义一个类,包含相应的变量接收分割好的字符串 4.把这个类转换成转成Json
public void ToJson(string youText)
{
string[] RowText = youText.Split('\n');//按照行把每一个全部字符串分割成一行一行的
//JsonData HZ_json=
foreach (string OneRow_text in RowText) //现在可以假想拿到了其中一行
{
string[] OneRow_child = OneRow_text.Split(',');
if (OneRow_child.Length > 0)
{
container.HZ_name = OneRow_child[0];
container.HZ_ID = OneRow_child[1];
container.HZ_Count = OneRow_child[2];
//单独考虑一个,假如现在有一个元素OneRow_child[3];还需要分割下
string[] oneRowchild_child = OneRow_child[3].Split('&');
container.HZ_Merge = new List<string>();
foreach (string A in oneRowchild_child)
{
container.HZ_Merge.Add(A);
}
}
ConvertJson(container);
container.HZ_Merge.Clear();
//Console.WriteLine(container.HZ_name+"," + container.HZ_Merge[0]);
}
}
public void ConvertJson(ChildText youText)
{
string A = JsonMapper.ToJson(youText);//把结构体各个变量转成Json格式的文本字符串
//JsonData B = JsonMapper.ToObject(A+'\n');
Console.WriteLine("开始写入");
File_write(A + '\n');
}
public void File_write(string Ison_file)
{//1.建立流 2.建立字节块数组,3.写进去
do
{
//if (!Directory.Exists(writePath))
//{
// File.Delete(writePath);
// Console.WriteLine("已删除文件");
// break;
//}
FileStream Write = new FileStream(writePath, FileMode.Append);//写入的第一种操作函数,参数1表示流指向的路径文件,后面是访问文件的模式,
//Append打开文件,流指向文件的末尾,
Byte[] HZ_txt = new UTF8Encoding().GetBytes(Ison_file);//把字符串变成字节块
//File.WriteAllBytes(writePath, HZ_txt);
//FileStream Write = File.Create(writePath, HZ_txt.Length, FileOptions.Asynchronous);
Write.Write(HZ_txt, 0, HZ_txt.Length);
Write.Flush();
Write.Close();
} while (false);
}
}//end class
}//end namespace
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using LitJson;
namespace File_ReadWrite
{
//1.首先要拿到一个文件,
struct ChildText
{
public string HZ_name;
public string HZ_ID;
public string HZ_Count;
public List<string> HZ_Merge;
}
class ReadTxtToJson
{
//发现有可以重复使用的变量了
private string Filepath1 = Directory.GetCurrentDirectory();
private string HaveRead;
public string Filepath
{
get
{
return Filepath1;
}
set
{
Filepath1 = value;
}
}
string writePath = Directory.GetCurrentDirectory() + @"\HZjson.txt";
ChildText container = new ChildText();
//1.读一个文件【一个流指向路径 2.把这个流读进BYTE数组 3.转换成string】
public void ReadFile(string FilePath)
{
Filepath = Filepath + FilePath;
Console.WriteLine(Filepath);
bool IsReaded;
do
{
if (Directory.Exists(Filepath))
{
Console.WriteLine("路径不存在,请检查!");
break;
}
FileStream pFile = new FileStream(Filepath, FileMode.Open);//第一种
//FileStream mytxt = File.OpenRead(Filepath);//第二种拿到流的方法
Byte[] FileBuffer = new byte[(int)pFile.Length];//构建一个缓冲池
int ReadFileLenght = pFile.Read(FileBuffer, 0, (int)pFile.Length);//把拿到的流文件读到缓冲池中去
HaveRead = System.Text.Encoding.UTF8.GetString(FileBuffer);
Console.WriteLine(HaveRead);
IsReaded = true;
pFile.Close();
//pFile.Write(Mytxt,0,Mytxt.Length);//把文件流写到字节数组中
} while (false);
if (HaveRead != null)
ToJson(HaveRead);
}
//1.拿到一个字符串的文本 2.字符串分割 3.定义一个类,包含相应的变量接收分割好的字符串 4.把这个类转换成转成Json
public void ToJson(string youText)
{
string[] RowText = youText.Split('\n');//按照行把每一个全部字符串分割成一行一行的
//JsonData HZ_json=
foreach (string OneRow_text in RowText) //现在可以假想拿到了其中一行
{
string[] OneRow_child = OneRow_text.Split(',');
if (OneRow_child.Length > 0)
{
container.HZ_name = OneRow_child[0];
container.HZ_ID = OneRow_child[1];
container.HZ_Count = OneRow_child[2];
//单独考虑一个,假如现在有一个元素OneRow_child[3];还需要分割下
string[] oneRowchild_child = OneRow_child[3].Split('&');
container.HZ_Merge = new List<string>();
foreach (string A in oneRowchild_child)
{
container.HZ_Merge.Add(A);
}
}
ConvertJson(container);
container.HZ_Merge.Clear();
//Console.WriteLine(container.HZ_name+"," + container.HZ_Merge[0]);
}
}
public void ConvertJson(ChildText youText)
{
string A = JsonMapper.ToJson(youText);//把结构体各个变量转成Json格式的文本字符串
//JsonData B = JsonMapper.ToObject(A+'\n');
Console.WriteLine("开始写入");
File_write(A + '\n');
}
public void File_write(string Ison_file)
{//1.建立流 2.建立字节块数组,3.写进去
do
{
//if (!Directory.Exists(writePath))
//{
// File.Delete(writePath);
// Console.WriteLine("已删除文件");
// break;
//}
FileStream Write = new FileStream(writePath, FileMode.Append);//写入的第一种操作函数,参数1表示流指向的路径文件,后面是访问文件的模式,
//Append打开文件,流指向文件的末尾,
Byte[] HZ_txt = new UTF8Encoding().GetBytes(Ison_file);//把字符串变成字节块
//File.WriteAllBytes(writePath, HZ_txt);
//FileStream Write = File.Create(writePath, HZ_txt.Length, FileOptions.Asynchronous);
Write.Write(HZ_txt, 0, HZ_txt.Length);
Write.Flush();
Write.Close();
} while (false);
}
}//end class
}//end namespace