java new file文件名乱码_linux下File.createNewFile(“中文文件名”) 乱码问题

$ javap -verbose FileTest

Compiled from "FileTest.java"

public class FileTest extends java.lang.Object

SourceFile: "FileTest.java"

minor version: 0

major version: 49

Constant pool:

const #1 = Method       #29.#40;        //  java/lang/Object."":()V

const #2 = Method       #41.#42;        //  java/lang/System.getProperties:()Ljava/util/Properties;

const #3 = Field        #41.#43;        //  java/lang/System.out:Ljava/io/PrintStream;

const #4 = Method       #44.#45;        //  java/util/Properties.list:(Ljava/io/PrintStream;)V

const #5 = String       #46;    //  ******************

const #6 = Method       #47.#48;        //  java/io/PrintStream.println:(Ljava/lang/String;)V

const #7 = String       #49;    //  file.encoding

const #8 = Method       #41.#50;        //  java/lang/System.getProperty:(Ljava/lang/String;)Ljava/lang/String;

const #9 = class        #51;    //  java/lang/StringBuilder

const #10 = Method      #9.#40; //  java/lang/StringBuilder."":()V

const #11 = String      #52;    //  encoding:

const #12 = Method      #9.#53; //  java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;

const #13 = Method      #9.#54; //  java/lang/StringBuilder.toString:()Ljava/lang/String;

const #14 = String      #55;    //  ./?haha?AAA??.txt

const #15 = class       #56;    //  java/lang/String

const #16 = String      #57;    //  gbk

const #46 = Asciz       ******************;

const #47 = class       #79;    //  java/io/PrintStream

const #48 = NameAndType #80:#81;//  println:(Ljava/lang/String;)V

const #49 = Asciz       file.encoding;

const #50 = NameAndType #82:#83;//  getProperty:(Ljava/lang/String;)Ljava/lang/String;

public FileTest();

Code:

Stack=1, Locals=1, Args_size=1

0:   aload_0

1:   invokespecial   #1; //Method java/lang/Object."":()V

4:   return

LineNumberTable:

line 6: 0

public static void main(java.lang.String[])   throws java.lang.InterruptedException;

Code:

Stack=4, Locals=6, Args_size=1

12:  ldc     #5; //String ******************

14:  invokevirtual   #6; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

17:  ldc     #7; //String file.encoding

19:  invokestatic    #8; //Method java/lang/System.getProperty:(Ljava/lang/String;)Ljava/lang/String;

22:  astore_1

23:  getstatic       #3; //Field java/lang/System.out:Ljava/io/PrintStream;

26:  new     #9; //class java/lang/StringBuilder

29:  dup

30:  invokespecial   #10; //Method java/lang/StringBuilder."":()V

33:  ldc     #11; //String encoding:

35:  invokevirtual   #12; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;

38:  aload_1

39:  invokevirtual   #12; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;

42:  invokevirtual   #13; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;

45:  invokevirtual   #6; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

48:  ldc     #14; //String ./?haha?AAA??.txt

50:  astore_2

51:  getstatic       #3; //Field java/lang/System.out:Ljava/io/PrintStream;

54:  aload_2

55:  invokevirtual   #6; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

58:  new     #15; //class java/lang/String

61:  dup

62:  aload_2

63:  ldc     #16; //String gbk

65:  invokevirtual   #17; //Method java/lang/String.getBytes:(Ljava/lang/String;)[B

68:  aload_1

69:  invokespecial   #18; //Method java/lang/String."":([BLjava/lang/String;)V

// 太长显示不了,删除掉

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.java.io.File: 该类用来表示一个文件或目录,使用它可以: 1:访问文件或目录的属性(名字,大小,最后修改时间等) 2:操作文件或目录(创建,删除) eg: File file = new File("."+File.separator+"test.txt"); 1)表示当前项目根目录下的文件test.txt,在描述文件或目录时,我们指定的路径最好,使 用相对路径,否则会出现系统差异,不利于跨平台。 2)".":当前目录,在eclipse中运行时,表示当前项目的根目录 3)java.io.File 由于目录的层级分隔符不同系统也有差异: windows:"\",例如:d:\xxx.txt linux:"/" 所以应当使用File的常量表示:File.separator 获取属性信息的相关方法: 1)获取文件名:String getName() 2)获取文件大小:long length() 3)查看文件是否真实存在:boolean exists() 4)查看是否表示的是文件:boolean isFile() 5)查看是否表示的是目录:boolean isDirectory() 6)以下三个方法判断文件或目录是否:可写,可读,可运行 file.canWrite(); file.canRead(); file.canExecute(); 是否为隐藏文件:file.isHidden(); 2.使用File创建一个新文件 ---->在当前项目根目录下创建一个名为demo.txt的文件 若是在当前目录下,"./"是可以忽略不写的 File file = new File("demo.txt"); //若该文件不存在则创建 if(!file.exists()){ //创建新文件 file.createNewFile(); System.out.println("创建完毕!"); } 方法: 1)使用File删除一个文件:file.delete(); 2)使用File创建一个目录:file.mkdir(); 3)创建多级目录:file.mkdirs(); --mkdirs()在创建当前目录的同时,将所有不存在的父目录一同创建 4)删除目录:file.delete(); 若是删除目录,前提是该目录必须是一个空目录(目录中没有任何内容),否则删 除不掉 3.File操作: 1)若File表示的是一个目录,我们可以获取该目录下的所有子项,子项无非还是文件或目录。 /* * 获取当前项目根目录下的所有子项 */ File dir = new File("."); if(dir.isDirectory()){//判断文件表示的是否是目录 /* *方法: * File[] listFiles() * 该方法会获取当前目录下的所有子项,每一个子项无非还是文件或目录,所 以,可以用若干File对象表示每一个子项,最终将他们存入一个数组返回。 */ File[] subs = dir.listFiles(); for(File sub : subs){ if(sub.isFile()){ System.out.println("文件:"+sub.getName()); }else{ System.out.println("目录:"+sub.getName()); } } } 2)FileFilter:文件过滤器 使用文件过滤器来获取一个目录下满足条件的部分子项。是一个接口,本身不能实例化,我们需要定义一个类实现该接口,并重写其定义的accept方法来定义过滤规则。 accept方法用于定义过滤要求,当给定的file对象满足要求就返回true即可。 重载的listFiles方法: 要求我们传入一个文件过滤器,然后该方法会将当前目录下的所有子项顺序的传递给过滤器的accept方法,只将返回为true的子项保留,最终存入一个数组并返回。eg:File[] subs = dir.listFiles(filter);---->filter为过滤器 3)删除多级目录: 由于一个目录中可能含有子项。所以要删除当前这个目录必须先将其所有子项删除才 可以。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值