个人的建议最好是将内容读入缓存然后再进行存盘操作,这样可以 避免存盘后再打开时出现当前文件已被占用的错误提示。以下是打开一张图片的代码,
PictureBox1.Image.Dispose()
Dim imagedatastream As IO.FileStream
Dim file_info As New FileInfo(jpeg)
imagedatastream = IO.File.Open(jpeg, IO.FileMode.Open, IO.FileAccess.ReadWrite)
Dim imgdatalen As Integer = file_info.Length '定义每次读取字节的长度
Dim m_ImgData(imgdatalen) As Byte '定义存储图片二进制的数组
'获取图片的字节数
imagedatastream.Read(m_ImgData, 0, imgdatalen)
'压缩指定路径下的图片并预览
Dim MemStream As New IO.MemoryStream(m_ImgData)
PictureBox1.Image = Image.FromStream(MemStream)
Label11.Visible = False
pic_path = jpeg
imagedatastream.Close()
imagedatastream.Dispose()
Imports System
Imports System.IO
Imports System.Text.RegularExpressions
‘命名空间放在代码的最上面---------------------------------------------------------------
Dim n_Rfiles As IO.StreamReader = New IO.StreamReader("C:\1.txt") '定义文件操作类对象
Dim n_Read As String
Do While n_Rfiles.EndOfStream = False '判断是否到文件末尾
n_Read = n_Rfiles.ReadLine 'ReadLine方法为逐行读出
Loop
Dim n_Wfiles As IO.StreamWriter = New IO.StreamWriter("C:\1.txt")
Dim Ba As String ="ABC"
n_Wfiles.Write(Ba) '将Ba写入文件
Dim i As Integer
dim strTemp as string
For i = 1 To 500‘这里的500根据实际数量修改
Dim c() As Control = Me.Controls.Find("TextBox" & i, False)
strTemp =strTemp & c(0).Text & vbcrlf
Next
然后保存strTemp到文本文件即可
Dim PathUserData As String = "d:\11111.txt" '文本文件写入
Dim t As System.IO.StreamWriter = New System.IO.StreamWriter(PathUserData, False, System.Text.Encoding.UTF8)
t.WriteLine(TextBox1.Text)
t.WriteLine(TextBox2.Text)
t.WriteLine(TextBox3.Text)
t.WriteLine(TextBox4.Text)
t.WriteLine(TextBox5.Text)
t.WriteLine(TextBox6.Text)
t.WriteLine(TextBox7.Text)
t.WriteLine(TextBox8.Text)
t.WriteLine(TextBox9.Text)
t.WriteLine(TextBox10.Text)
t.WriteLine(TextBox11.Text)
t.WriteLine(TextBox12.Text)
t.WriteLine(Label4.Text)
t.Close()
Dim sr As System.IO.StreamReader = New System.IO.StreamReader("d:\11111.txt", System.Text.Encoding.Default)
Dim line As String
line = sr.ReadLine '文本文件读取
Me.TextBox1.Text = line
line = sr.ReadLine
Me.TextBox2.Text = line
line = sr.ReadLine
Me.TextBox3.Text = line
line = sr.ReadLine
Me.TextBox4.Text = line
line = sr.ReadLine
Me.TextBox5.Text = line
line = sr.ReadLine
Me.TextBox6.Text = line
line = sr.ReadLine
Me.TextBox7.Text = line
line = sr.ReadLine
Me.TextBox8.Text = line
line = sr.ReadLine
Me.TextBox9.Text = line
line = sr.ReadLine
Me.TextBox10.Text = line
line = sr.ReadLine
Me.TextBox11.Text = line
line = sr.ReadLine
Me.TextBox12.Text = line
line = sr.ReadLine
Me.Label4.Text = line
sr.Close()
大佬,有没有什么办法简化这段代码?如果我有500个text也只能这样吗
你这个应该用数据库来实现吧。
然后你下面的代码是好古老的写法了,就算是写到文本文件,我感觉现在也没必要这样写了。
vb.net有个简单的写法,直接写字符串到文件,最后一个参数是覆盖还是追加
My.Computer.FileSystem.WriteAllText("文件名", "内容", False)
.net正常写字符串到文件的方法如下,还是按流来写的方式,还有异步语法,写文件的方式实在是太多了
Using outputFile As New IO.StreamWriter("WriteLines.txt")
outputFile.WriteLine("内容")
End Using