Java 文件到字体的URL

Java 文件到字体的URL,java,file,fonts,Java,File,Fonts,我正在使用URL导入字体。但由于并非所有情况下都会出现internet,也不希望每次运行程序时都下载文件,因此我希望使用相同的方法使用url,而是将其指向与程序位于同一位置的字体 以下是我尝试过的: File fontfile = new File("TexasLED.ttf"); File.toURI(fontfile).toURL(fontfile); URL fontUrl = new URL("fontfile"); 虽然我得到了这个错误: Error: F:\Computer Sci

我正在使用URL导入字体。但由于并非所有情况下都会出现internet,也不希望每次运行程序时都下载文件,因此我希望使用相同的方法使用url,而是将其指向与程序位于同一位置的字体

以下是我尝试过的:

File fontfile = new File("TexasLED.ttf");
File.toURI(fontfile).toURL(fontfile);
URL fontUrl = new URL("fontfile");
虽然我得到了这个错误:

Error: F:\Computer Science\draw.java:250: toURI() in java.io.File cannot be applied to (java.io.File)
我知道我做错了什么。有人知道我能做什么,怎么做吗

V2:

File fontfile=新文件(“TexasLED.ttf”); fontfile.toURI().toURL(); URL fontUrl=新URL(“fontfile”)

错误:

java.net.MalformedURLException: no protocol: fontfile

例如。 输出
您只需下载该文件一次,然后执行以下操作:

File f = new File("TexasLED.ttf");
if(f.exists()) {
    System.out.println("Already exists on computer");
}
else {
    URL fontURL = f.toURI().toURL();
    //Proceed to download font
}

这将检查您的计算机上是否存在该字体,只有在不存在该字体时,才会尝试下载新字体。这真的是我见过的唯一安全的方法。

我自己已经想出了怎么做。我将文件拖到我的web浏览器中,得到了以下url:

file:///F:/Computer_Science/TexasLED.ttf"
因此,我只是在其中使用了该URL,它起了作用:

URL fontUrl = new URL("file:///F:/Computer_Science/TexasLED.ttf");
相反,我可能会检查当前位置,并在开始时使用该+文件


不管怎样,谢谢你的帮助

好的,这仍然是我使用这个时看到的V2错误。它说文件确实存在。下面是它给出的路径:
fontURL:file:/F:/Computer%20Science/TexasLED.ttf
“V2错误”1)是“发射时爆炸”类型的错误,还是只是“错过伦敦3度”的错误?或者换句话说,什么DYM?2) 因此,如果
文件
不在列出的路径上,它位于哪个路径?这是你的电脑&font,别指望我知道。我唯一能想到的是F前面的/错了。那就好了。“我唯一能想到的是F前面的/错了”你没有注意到我URL中“I”前面的“/”吗?文件系统的URL就是这样工作的。我不明白为什么我现在做的不起作用。这是正确的文件和一切。如果这有帮助的话,这是更多的代码,问题是它下载到一个临时位置。这意味着它将被删除后一点。你如何下载该文件?尝试永久复制该文件:[link]但我宁愿不下载它。这是学校的事情,网站可能会被封锁,所以我不想冒险。我想使用文件夹中已有的特定字体。如果您不能始终连接到internet,但始终希望使用该字体,则必须至少下载一次并将其保存在某个位置。或者任意下载它并将其用作普通的
文件
对象。
File f = new File("TexasLED.ttf");
if(f.exists()) {
    System.out.println("Already exists on computer");
}
else {
    URL fontURL = f.toURI().toURL();
    //Proceed to download font
}
file:///F:/Computer_Science/TexasLED.ttf"
URL fontUrl = new URL("file:///F:/Computer_Science/TexasLED.ttf");