Java 在不使用任何库的情况下写入文件

Java 在不使用任何库的情况下写入文件,java,file,Java,File,在Java中,有没有一种方法可以在不导入类的情况下编写文件(例如Java.io)。我知道一种方法是这样做: Runtime.getRuntime().exec("echo 'test' > test.txt ") 我正在寻找实现类似结果的其他方法 在Java中,有没有一种不导入类(例如Java.io)而编写文件的方法 不,没有。在Java中,import语句只不过是Java编译器解析非限定名称(如String或Runtime)的快捷方式,因此不需要完全限定源代码中的所有名称-编译完成后,

在Java中,有没有一种方法可以在不导入类的情况下编写文件(例如
Java.io
)。我知道一种方法是这样做:

Runtime.getRuntime().exec("echo 'test' > test.txt ")
我正在寻找实现类似结果的其他方法

在Java中,有没有一种不导入类(例如Java.io)而编写文件的方法

不,没有。在Java中,
import
语句只不过是Java编译器解析非限定名称(如
String
Runtime
)的快捷方式,因此不需要完全限定源代码中的所有名称-编译完成后,在
.class
文件中,只有包含包名称的完全限定引用

甚至你的榜样

Runtime.getRuntime().exec("echo 'test' > test.txt ")
将成为

java.lang.Runtime.getRuntime().exec("echo 'test' > test.txt ")
.class
文件中:

$ javap -c Sample.class
  ...
  public static void main(java.lang.String[]) throws java.io.IOException;
    Code:
       0: invokestatic  #19                 // Method java/lang/Runtime.getRuntime:()Ljava/lang/Runtime;
       3: ldc           #25                 // String echo 'test' > test.txt
       5: invokevirtual #27                 // Method java/lang/Runtime.exec:(Ljava/lang/String;)Ljava/lang/Process;
       8: pop
       9: return

另见。

这个命题是荒谬的。如果不使用[insert language here]为此目的提供的设施,那么询问如何在[insert language here]中执行某些操作是毫无意义的

特别是在Java中,如果不依赖标准库,您将一事无成。如果不使用至少一个
ClassLoader
,以及
ClassLoader
依赖的每个类,甚至不能递归地加载类,包括
java.lang.String
java.util.Locale
java.io.InputStream
,以及许多其他类。在代码中不显式引用这些并不意味着程序不依赖它们


此外,避免Java代码中的
import
语句也没有什么特别的好处,因为这些语句没有运行时表现形式:它们纯粹是为了程序员的方便。

为什么不导入任何东西如此重要?Import语句不会对库创建任何依赖项。它们只允许您省略导入的类的包名。不要导入任何内容,而是完全限定所有类名。不需要导入(虽然如果您只是使用导入,那么生成与之相同的编译代码的源代码将更加详细)。但是,您的要求没有任何意义……请注意,即使您的示例执行(隐式)“导入”-
运行时
也是自动导入的
java.lang
包的一部分