我正在尝试下载Latex公式的图像文件。以下是我正在使用的代码
var out: OutputStream = null;
var in: InputStream = null;
try {
val url = new URL("http://latex.codecogs.com/png.download?$$I=\frac{dQ}{dt}$$")
val connection = url.openConnection().asInstanceOf[HttpURLConnection]
connection.setRequestMethod("GET")
in = connection.getInputStream
val localfile = "sample2.png"
out = new BufferedOutputStream(new FileOutputStream(localfile))
val byteArray = Stream.continually(in.read).takeWhile(-1 !=).map(_.toByte).toArray
out.write(byteArray)
} catch {
case e: Exception => println(e.printStackTrace())
} finally {
out.close
in.close
}
我可以下载,但它没有下载完整的图像,预期的图像大小约为517字节,但它只下载275字节。它可能出了什么问题。附上不完整和完整的图像。请帮我。我使用相同的代码下载超过1MB大小的文件,它正常工作。
答案 0 :(得分:10)
您传递的是错误的字符串,"\f"
被解释为转义序列,并为您提供一个"form feed"个字符。
更好:
val url = new URL("http://latex.codecogs.com/png.download?$$I=\\frac{dQ}{dt}$$")
或
val url = new URL("""http://latex.codecogs.com/png.download?$$I=\frac{dQ}{dt}$$""")
答案 1 :(得分:2)
另一种选择是使用更清洁的系统命令
import sys.process._
import java.net.URL
import java.io.File
new URL("""http://latex.codecogs.com/png.download?$$I=\frac{dQ}{dt}$$""") #> new File("sample2.png") !!