运行窗体时,在窗体显示前会把日志信息保存到指定文件中
点击测试按钮时,会将点击按钮的日志(自定义的信息和时间)保存到log.txt文件中
点击图片选择按钮时可以选择图片框中的文件
点击保存图片到txt文件中时会将图片以流的形式保存到图片日志文件中
代码实现:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Day11_W_Log_TexstTxt
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
//日志写入txt文件
private static void Log(string mes, string filePath)
{
string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string startPath = Application.StartupPath;
string path = startPath + "/" + filePath;
using StreamWriter sw = File.AppendText(path);
sw.WriteLine(mes + time);
sw.Flush();
}
private void Form2_Load(object sender, EventArgs e)
{
Log("窗体展示前的日志:", "log.txt");
}
private void button1_Click(object sender, EventArgs e)
{
Log("按钮点击日志写入:", "log.txt");
}
//选择图片文件
private void button2_Click(object sender, EventArgs e)
{
DialogResult dr = openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
//获取选择的文件的字节流
Stream stream = openFileDialog1.OpenFile();
//将字节流转化为图片对象
Image img = Image.FromStream(stream);
//图片对象赋值给图片框中的Image图片属性,即可显示图片
pictureBox1.Image = img;
}
}
private void button3_Click(object sender, EventArgs e)
{
//获取图片框中的图片
Image image = pictureBox1.Image;
//调用方法,把图片存储到图片日志文件中
ImgToTxt(image);
}
//将图片文件以流的形势存入txt文件中
private static void ImgToTxt(Image img)
{
//创建存储流的实例
MemoryStream ms = new MemoryStream();
//将图片保存在实例对象中
img.Save(ms, ImageFormat.Png);
//从实例对象中获取图片的字节数据
byte[] bytes = ms.GetBuffer();
//将字节数据转化成字符串
string data = Convert.ToBase64String(bytes);
//将转化好的字符串数据保存在日志文件中
Log(data, "pic.txt");
}
}
}