16,554
社区成员
发帖
与我相关
我的任务
分享
Public Class Form1
Public url As String = "http://localhost/image/1.jpg" '原图
Public save As String = "C:\Users\李阳\Desktop\1.jpg" '下载文件保存的位置
Public file As String = "C:\Users\李阳\Desktop\12.jpg" '这也是原图,我放到桌面上了一个
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
DownloadFirst5000() '下载前5000字节
DownloadNext5000() '下载接下来的5000字节
End Sub
Private Sub BtnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
Dim stream1 As FileStream = New FileStream(save, FileMode.Open) '流1是下载的图片
Dim stream2 As FileStream = New FileStream(file, FileMode.Open) '流2是原图
Dim builder As New Text.StringBuilder
For i As Integer = 1 To New FileInfo(save).Length '一个字节一个字节的比较
Dim byte1 As Integer = stream1.ReadByte
Dim byte2 As Integer = stream2.ReadByte
If byte1 <> byte2 Then '找到不同的
builder.AppendFormat(String.Format("第{0,7} 位,流1:{1,4} ,流2:{2,4}", i, byte1, byte2)).AppendLine()
End If
Next
Log(builder.ToString)
End Sub
Sub DownloadFirst5000()
Dim request As HttpWebRequest = WebRequest.Create(url)
request.AddRange("bytes", 0, 4999)
Dim response As HttpWebResponse = request.GetResponse
Dim buffer(response.ContentLength - 1) As Byte
Dim stream As Stream = response.GetResponseStream
stream.Read(buffer, 0, buffer.Count)
With New FileStream(save, FileMode.CreateNew)
.Write(buffer, 0, buffer.Count)
.Close()
End With
Log(response.Headers(HttpResponseHeader.ContentRange))
End Sub
Sub DownloadNext5000()
Dim request As HttpWebRequest = WebRequest.Create(url)
request.AddRange("bytes", 5000, 9999)
Dim response As HttpWebResponse = request.GetResponse
Dim buffer(response.ContentLength - 1) As Byte
Dim stream As Stream = response.GetResponseStream
stream.Read(buffer, 0, buffer.Count)
With New FileStream(save, FileMode.Append)
.Write(buffer, 0, buffer.Count)
.Close()
End With
Log(response.Headers(HttpResponseHeader.ContentRange))
End Sub
Sub 直接下载整个图片()
Dim request As HttpWebRequest = WebRequest.Create(url)
Dim response As HttpWebResponse = request.GetResponse
Dim buffer(response.ContentLength - 1) As Byte
Dim stream As Stream = response.GetResponseStream
stream.Read(buffer, 0, buffer.Count)
With New FileStream(save, FileMode.CreateNew)
.Write(buffer, 0, buffer.Count)
.Close()
End With
Log(response.Headers(HttpResponseHeader.ContentLength))
End Sub
Sub Log(text As String) '写日志
With New StreamWriter("C:\Users\李阳\Desktop\log.txt", True, System.Text.Encoding.Unicode)
.WriteLine(text)
.Close()
End With
End Sub
End Class