5

我正在尝试下载 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 大小的文件,它可以正常工作。

图像不完整

预期图像

4

2 回答 2

10

你传递了一个错误的字符串,它"\f"被解释为一个转义序列,并给你一个“换页”字符。

更好的:

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}$$""")
于 2012-09-04T15:56:22.967 回答
3

另一种选择是使用更简洁的系统命令

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") !!
于 2014-02-18T09:55:26.083 回答