任何机构都可以解释这段代码吗?我很困惑请指导我并用JSP语言解释这段代码简单的措辞。谢谢
if( fileName.lastIndexOf("\\") >= 0 ) {
file = new File( filePath +
fileName.substring( fileName.lastIndexOf("\\"))) ;
} else {
file = new File( filePath +
fileName.substring(fileName.lastIndexOf("\\")+1)) ;
}
fi.write( file ) ;
out.println("<h3>Uploaded Filename:</h3> "+fileName);
}
}
答案 0 :(得分:1)
在java文件中,路径可由\\
描述。
例如:String path = "D:\\folder1\\folder2\\filename.type"
lastIndexOf("\\")
将从\\
返回file name
的最后一个位置值。
变量file
将被分配path
,文件将从磁盘上的java程序中上传。
if
和else
块检查文件路径是否正确,并为变量path
分配。
最后write
方法从指定路径上传文件。
答案 1 :(得分:1)
首先参考方法文档 - lastIndexOf
和substring
lastIndexOf&amp; substring了解这些方法的作用。
另请注意,由于\
是转义字符,我们在代码中使用双斜杠,因此\\
表示单斜杠\
如果您申请lastIndexOf("\\")
,则可能会获得值-1
或>=0
。 -1
值表示该字符串中不存在\
,值>=0
表示它存在。
在下面的if部分中,您只需确定\
中是否有fileName
,如果它在那里 - 只取最后一部分并附加filePath
,以便{{1}像fileName
这样的值,您只提取abc\test.txt
并附加到\test.txt
。
filePath
然后,在if( fileName.lastIndexOf("\\") >= 0 ) {
file = new File( filePath +
fileName.substring( fileName.lastIndexOf("\\"))) ;
}
部分中,我们已经知道else
不存在,因此代码不必要地执行 - \
- 这将始终为零。
fileName.lastIndexOf("\\")+1)
所以代码可以简单地写成,
else {
file = new File( filePath +
fileName.substring(fileName.lastIndexOf("\\")+1)) ;
}
line - else{
file = new File( filePath +fileName)}
创建一个new File(....)
对象,即流内容被写入的对象。
在SO上,这些问题没有得到解答,但我回答,因为你的个人资料说你是学生。
其次,我无法评论该代码是否正确或不正确,我只是解释了该代码正在做什么。