VB.NET 创建文件以及文件的读写(创建随机数)

简介: 创建文件 Dim strFile As String = String.Format("C:\ErrorLog.txt", DateTime.Today.ToString("dd-MMM-yyyy")) File.

创建文件

Dim strFile As String = String.Format("C:\ErrorLog.txt", DateTime.Today.ToString("dd-MMM-yyyy"))
File.AppendAllText(strFile, String.Format("Error Message in  Occured at-- {0}{1}", DateTime.Now, Environment.NewLine))

第一句话的意思是在c盘下面创建一个ErrorLog.txt的文本文档,第二句话的意思是,在这个文本文档中写入"Error Message in Occured at--后面接当前时间,每打印一句就换一行。

上面是直接从本地磁盘写,那么,如果从数据库中要读取后缀.bin的文件,然后在写入本地磁盘该如何做呢?

从数据库读取文件

 

                           '读取数据库中bin文件
                            Dim blobFiles As Integer = 0
                            Try
                                System.IO.Directory.CreateDirectory("C:\var\")
                                myCommand.CommandText = "select  blobFile from  evnet.join_server_firmware_version order by dttDateTime desc" '从数据库中读取存放文件字段按时间最新
                                Dim dr As MySqlDataReader = myCommand.ExecuteReader()
                                dr.Read()
                                Dim b(dr.GetBytes(blobFiles, 0, Nothing, 0, Integer.MaxValue) - 1) As Byte '声明b数组存放读取到的dr
                                dr.GetBytes(blobFiles, 0, b, 0, b.Length) '将b读取到的数存放在blobFiles中
                                dr.Close()
                                conn.Close()
                                conn.Open()
                                myCommand.CommandText = "select  vchfimware_versionName from  evnet.join_server_firmware_version order by dttDateTime desc"
                                VersionName = myCommand.ExecuteScalar
                                conn.Close()
                                If System.IO.File.Exists("C:\var\" + VersionName + ".txt") Then '判断当前c盘是否存储有该文件夹

                                Else
                                    Dim fs12 As New System.IO.FileStream("C:\var\" + VersionName + ".txt ", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)  '无则创建改文件
                                    fs12.Write(b, blobFiles, b.Length) '向创建的文件中开始写,一次性写完
                                    fs12.Close() '关闭读写操作,以免引发异常
                                    fs12.Dispose()
                                End If
                                '======================
                            Catch ex As Exception
                                Debug.Print("#######################" & ex.StackTrace)
                                Debug.Print("########" & ex.Message)
                                Throw ex
                            End Try

 

每次只读取2014长度的字节

 

 Dim fs As New System.IO.FileStream("C:\var\" + VersionName + ".txt", IO.FileMode.Open, IO.FileAccess.Read)  Dim buffer(1023) As Byte
 Dim re As New System.IO.BinaryReader(fs)
 Dim numdouble As Double = (fs.Length / 1024)
 num = Math.Ceiling(numdouble) '此函数用于判断是否有小数,有小数将自动取整比如:1.2将会取2,1.6将会取2
 fs.Seek(i * ByNum.c, SeekOrigin.Begin)
 re.Read(buffer, 0, 1024) '表示从0位开始读1024位 如果想取分组包长度可用 buffer.Length  如果想取数据则直接可取buffer

 将VS中输出的debug统一放入指定的txt文件夹中

 Public Const LOG_PATH As String = "C:\Users\Public\Documents\ECharge\"
        If Not System.IO.Directory.Exists(Main.LOG_PATH) Then
            System.IO.Directory.CreateDirectory(Main.LOG_PATH)
        End If
        If Not System.IO.Directory.Exists(Main.LOG_PATH & "Connect Server") Then
            System.IO.Directory.CreateDirectory(Main.LOG_PATH & "Connect Server")
        End If
        If Not System.IO.Directory.Exists(Main.LOG_PATH & "Connect Server\Exception\") Then
            System.IO.Directory.CreateDirectory(Main.LOG_PATH & "Connect Server\Exception\")
        End If
        If Not System.IO.Directory.Exists(Main.LOG_PATH & "Connect Server\Exception\" & Main.serverID & "\") Then
            System.IO.Directory.CreateDirectory(Main.LOG_PATH & "Connect Server\Exception\" & Main.serverID & "\")
        End If
        Dim Str As New FileStream(Main.LOG_PATH & "Connect Server\Exception\" & Main.serverID & "\" & "DebugMessages.txt", System.IO.FileMode.Append)
        Dim DebugFile As New StreamWriter(Str)
        Dim Listener = New TextWriterTraceListener(DebugFile)

        Debug.Listeners.Add(Listener)
        Debug.AutoFlush = True

        Debug.Print("----- start debug print to file")

     上述代码将程序运行的debug放到c盘指定的目录,并创建一个DebguMessage.txt文档,执行后效果图如下:

   

VB.NET创建随机数 

 1     '产生随机数
 2         Try
 3             Dim Vchar As String = "00030,0031,00032,00033,00034,00035"
 4             Dim VcArray() As String = Split(Vchar, ",") '将字符串生成数组
 5             Dim VNum As String = ""
 6             Dim objRandom As Random = New Random
 7             objRandom.Next(0, 5)
 8             VNum = VNum & VcArray(Int(objRandom.Next(0, 5))) '数组从0开始读取,后面指定读取最大界限,防止数组越界
 9             MessageBox.Show(VNum)
10         Catch ex As Exception
11             Debug.Print(ex.Message)
12             Throw ex
13         End Try

 VB.NET Integer类型转成byte类型并调用sort方法重新对元素排序 

 Public Sub setChargerStattimeStamp(ByRef StataTimeStamp As Integer)
        Try
            chargerStatTimeStamp = BitConverter.GetBytes(StataTimeStamp)
            Dim sorts As List(Of Byte) = New List(Of Byte)(chargerStatTimeStamp)
            sorts.Sort()
            chargerStatTimeStamp(0) = sorts(0)
            chargerStatTimeStamp(1) = sorts(1)
            chargerStatTimeStamp(2) = sorts(2)
            chargerStatTimeStamp(3) = sorts(3)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

  VB.NET byte免拼接高级写法

 Public Sub setRemoteUID(ByRef byteArray() As Byte)
        Try
            'D1 46 A3 6A 5E 08 04 00 01 D7 15 65 0B 94 3D 1D   原始UID:209701631069429  
            Array.Copy(byteArray, 0, Me.remoteUid, 0, UID_LENGTH)
            Array.Resize(Me.remoteUid, UID_LENGTH)
            ArrayRemove(byteArray, UID_LENGTH)
            Dim id As String() = Me.remoteUid.Select(Function(byt) byt.ToString("x2")).ToArray
            Dim uid As String = String.Join("-", id).ToUpper
            Me.remoteUid_Value = uid 
            Dim id1 As String() = Me.remoteUid.Select(Function(byt) byt.ToString("x2")).ToArray
            Dim uid1 As String = String.Join("", id).ToUpper
            Meter_Reading.ByNum.Uid = Me.remoteUid_Value
            Meter_Reading.ByNum.vchprivateID = uid1
            Debug.Print("##############remoteUid_Value=" & Me.remoteUid_Value)
            Debug.Print("##############vchprivateID=" & Meter_Reading.ByNum.vchprivateID)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

 

                        end

 

  • 感谢你的阅读。如果你觉得这篇文章对你有帮助或者有启发,就请推荐一下吧~你的精神支持是博主强大的写作动力。欢迎转载!
  • 博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。
  • 欢迎加入.NET 从入门到精通技术讨论群→523490820 期待你的加入
  • 不舍得打乱,就永远学不会复原。被人嘲笑的梦想,才更有实现的价值。
  • 我的博客:http://www.cnblogs.com/zhangxiaoyong/
目录
相关文章
|
25天前
|
C# Windows
一款基于.NET开发的简易高效的文件转换器
一款基于.NET开发的简易高效的文件转换器
|
2月前
.NET 压缩/解压文件
【9月更文挑战第5天】在 .NET 中,可利用 `System.IO.Compression` 命名空间进行文件的压缩与解压。首先引入相关命名空间,然后通过 GZipStream 类实现具体的压缩或解压功能。下面提供了压缩与解压文件的方法示例及调用方式,便于用户快速上手操作。
|
3月前
|
Java Windows 容器
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
|
3月前
|
开发框架 .NET Linux
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
|
4月前
|
存储 对象存储 Python
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
|
4月前
|
算法 API 数据安全/隐私保护
.NET使用原生方法实现文件压缩和解压
.NET使用原生方法实现文件压缩和解压
.NET使用原生方法实现文件压缩和解压
|
4月前
|
存储 C#
.NET使用CsvHelper快速读取和写入CSV文件
.NET使用CsvHelper快速读取和写入CSV文件
|
5月前
|
存储 安全 Unix
【.Net Core】深入理解IO之文件和目录
【.Net Core】深入理解IO之文件和目录
54 4
|
5月前
|
存储 C#
.NET使用CsvHelper快速读取和写入CSV文件
优秀项目和框架精选 该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。
|
5月前
|
开发框架 .NET Linux
【.NET Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
该文介绍了如何不使用VS2019手动创建ASP.NET Core Blazor项目的Dockerfile并构建Docker镜像。首先,创建名为Dockerfile的文件,并复制提供的Dockerfile内容,该文件指定了基础镜像和工作目录。然后,通过CMD在项目目录下运行`docker build -t 自定义镜像名 .`来生成镜像。最后,使用`docker run`命令启动容器并验证项目运行。此外,文章还提到了将镜像推送到Azure Container Registry (ACR)的步骤。
220 0