Хорошо, посмотрите на то, что вы просили:
FS = New FileStream("C:\Temp\My Picture.JPG", _
FileMode.OpenOrCreate, FileAccess.Write)
Вы попросили открыть или создать файл для записи. Ничего о чтении.
Теперь, вдобавок ко всему, вы пытаетесь использовать StreamReader
и StreamWriter
для файлов jpeg. Не делайте этого. Изображения представляют собой двоичные файлы; TextReader
и TextWriter
(и подклассы) предназначены для текстовых файлов. Как будет выглядеть строковое представление изображения?
Далее вам следует использовать операторы «Using» , чтобы убедиться, что вы закрываете свои потоки / читатели / пишущие, даже если возникает исключение.
Далее, в большинстве случаев проще всего использовать статические методы класса File
для открытия потоков или программ чтения файлов. Таким образом, метод, который вы используете, говорит о том, что вы хотите сделать с потоком - например, File.OpenRead
, File.OpenWrite
, File.ReadAllText
и т. Д.
Далее, если вы действительно хотите скопировать файл, вы можете использовать File.Copy
. Если вы хотите прочитать все данные в память и скопировать их, вы можете использовать File.ReadAllBytes
и File.WriteAllBytes
, что означает, что вам вообще не нужно возиться с потоками.