Creates a new auxiliary resource file for writing and returns a file object for it. The file may be located along with the newly created source files, newly created binary files, or other supported location. The locations {@link StandardLocation#CLASS_OUTPUT CLASS_OUTPUT} and {@link StandardLocation#SOURCE_OUTPUT SOURCE_OUTPUT} must besupported. The resource may be named relative to some package (as are source and class files), and from there by a relative pathname. In a loose sense, the full pathname of the new file will be the concatenation of {@code location}, {@code pkg}, and {@code relativeName}.
Files created via this method are not registered for annotation processing, even if the full pathname of the file would correspond to the full pathname of a new source file or new class file.
@param location location of the new file
@param pkg package relative to which the file should be named,or the empty string if none
@param relativeName final pathname components of the file
@param originatingElements type or package elements causallyassociated with the creation of this file, may be elided or {@code null}
@return a {@code FileObject} to write the new resource
@throws IOException if the file cannot be created
@throws FilerException if the same pathname has already beencreated
@throws IllegalArgumentException for an unsupported location
@throws IllegalArgumentException if {@code relativeName} is not relative