For a start you are checking if the output file exists after reading every byte of the file, then deleting it. The file would never be more than 1 byte big in the end.
Secondly, you are opening up the output file every loop too but not closing it until the loop has finished. I would expect this would cause major problems.
Thirdly, you call the gosub and return from it, but I am pretty sure it will then carry on and run the code again. You need an 'end' command before it does this.
Forthly, I have no idea what you are trying to do by converting each byte to its character value but I am sure you have a good reason

It should probably be something more like this (although I haven't tried it):
+ Code Snippetsync on : sync rate 0 : hide mouse
gosub _readtoend
end
_readtoend:
cls
open to read 1,"My_FlashFile.flv"
if file open(1)=1
if file exist("MyFlashFile_Data.txt")=1 then delete file "MyFlashFile_Data.txt"
open to write 2, "MyFlashFile_Data.txt"
c=0
while file end(1)=0
B = asc(A$) ` not sure what line is for???
read byte 1,B
print ">";B
write string 2, chr$(B)
inc c
sync
endwhile
close file 2
close file 1
endif
`wait key
return