Java 如何从拖放路径中获取文件

Java 如何从拖放路径中获取文件,java,linux,file,path,filenotfoundexception,Java,Linux,File,Path,Filenotfoundexception,所以我想这真的不是一个问题,但我制作了一个JTextField,用户可以在其中拖放文件,以避免在swing树中点击半小时。这给了我一个像 file:///media/raphael/Coding/Test/Test%20rscs/Test%20Exercise.asf(我知道文件格式很常见,它是由我自己的代码生成的)由于开始时的%20和文件:,此路径不起作用。所以我做了一个函数,给我这个:/media/raphael/Coding/Test/Test-rscs/Test-Exercise.asf

所以我想这真的不是一个问题,但我制作了一个JTextField,用户可以在其中拖放文件,以避免在swing树中点击半小时。这给了我一个像
file:///media/raphael/Coding/Test/Test%20rscs/Test%20Exercise.asf
(我知道文件格式很常见,它是由我自己的代码生成的)由于开始时的%20和文件:,此路径不起作用。所以我做了一个函数,给我这个:
/media/raphael/Coding/Test/Test-rscs/Test-Exercise.asf
,但是当插入
BufferedReader br=new-BufferedReader(new-FileReader(this.path)),这个函数仍然不起作用,给我一个文件未找到异常。奇怪的是,当我在intellij中得到异常时,路径显示为指向文件的链接,所以路径实际上是有效的?要让java识别路径,我必须做些什么?

问题是,拖放会在拖放的任何内容的末尾添加一个传统的空格。当然,这个空格在错误消息或
System.out.println()中不可见。因此,解决方案是删除字符串的最后一个字符,如果它是“”。

可能BufferedReader正在寻找一个相对路径,但您提供了一个全局路径?那么我可以用什么来代替它?(我实际上不知道,因为我有Windows应用程序的相对路径,后来我用全局路径交换了这些路径,但这是出于某种原因,可能是操作系统的不同)