-
File demo=new FIle("demo"); //相对路径下建立一个demo if(!demo.exists()) demo.mkdir(); File file=new File(demo,"raf.dat"); if(!file.exists()) file.createNewFile(); //refresh RandomAccessFile raf=new RandomAccessFile(file,"rw"); //下载可以多线程下载 然后拼接 syso -> raf.getFilePointer(); //取得指针位置 0 raf.write('A'); //只写了一个字节 syso -> raf.getFilePointer(); // 1 raf.write('B'); int i=0x7fffffff; //最大整数 //用write方法每次只能写一个字节,如果要把i写进去 就得写四次 raf.write(i>>>24); //高8位 raf.write(i>>>16); raf.write(i>>>8); raf.write(i); syso -> file.getFilePointe() // 6 //可以直接写一个int raf.writeInt(i); //底层就是做位移 String s="中"; byte[] gdk=s.getBytes("gbk"); raf.write(gbk); syso ->raf.length() // 12 中文两个 //读文件 必须把指针移到头部 raf.seek(0); //一次性读取 把文件中的内容读到字节数组中 byte[] buf=new byte[(int)raf.length()]; // raf.length() 返回long型 raf.read(buf); 读一个字节 syso -> Arrays.toString(buf) for (byte b:buf) { syso -> Integer.toHexString(b & 0xff+" ") //以16进制输出 } raf.close();查看全部
-
File.separator这样实现linux、windows都认识查看全部
-
FileUtil: public static void listDirectory(File dir) throws IOException{ if(!dir.exist()){ throw new IllegalArgumentException("目录:"+dir+"不存在"); } if (!dir.isDirectory) { throw new IllegalArgumentException(dir+"不是目录"); } String[] filenames=dir.list(); //返回的是字符串数组 直接子的名称不包含子目录下的内容 for (String string:filenames){ syso -> dir + string; } //如果要遍历子目录下的内容 需要构造File对象做递归操作, File提供了直接返回File对象的API File[] files=dir.listFiles(); //返回的是直接目录(文件)的抽象 foreach后仍为子目录 if (files!=null && files.length>0) { //说明有子目录存在 for(File file:files){ if (file.isDirectory()){ listDirectory(file); } else { syso -> file; } main FileUtils.listDirectory(new File("e:\\example")); //打印出目录下所有的文件名 没有子目录查看全部
-
File file=new File("E:\\javaio"); syso -> file.exist(); if (!file.exists()){ file.mkdir(); //如果不存在就建立一个 // file.mkdirs() 创建多级目录 else file.delete(); //存在就删除 syso -> (file.isDirectory()); // 是否是一个目录 syso -> (file.isFile()); // 是否是一个文件 File file2=new File("e:\\javaio\\日记1.txt"); or ("e:\\javaio","日记1.txt") if (!file2.exist()){ file2.createNewFile(); 捕捉异常 // 常用api syso -> (file) // file.toString() 的内容 syso -> (file.getAboslutePath()); //上同 syso -> (file.getName) // imooc syso -> (file2.getName()); // 日记1.txt syso -> file.getParent() // e:\javaio syso -> file.getParentFile().getAbsolutePath(); }查看全部
-
http://img1.sycdn.imooc.com//5547083f0001484612000530-120-68.jpg查看全部
-
String s="慕课ABC"; byte[] bytes1=s.getBytes(); //转换成字节序列用的是项目默认的编码gbk for (byte b:bytes1){ //把字节转换成了int 以16进制的方式显示 system.out.println(Integer.toHexString(b & 0xff)+" "); // c4 bd bf ce 41 42 43 } byte[] bytes2=s.getBytes("gbk"); //手动定义用gbk编码 效果相同 但会有异常 中文两个字节 英文一个 byte[] bytes3-s.getBytes("utf-8"); // e6 85 95 e8 af be 中文三个字节 英文一个 //java是双字节编码 utf-16be 中文两个字节 英文两个字节 byte[] byte4=s.getBytes("utf-16be"); String str1=new String(bytes4); //会出现乱码 当你的字节序列是某种编码时,这个时候把自己序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str2=new String(bytes4,"utf-16be"); //这样就不会出现乱码了查看全部
-
IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序 读取 数据的方式 OutputStream抽象了应用程序 写出 数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 下面的in代表了输入流的对象 int b = in.read(); 返回一个整数,读取一个字节 无符号填充到int低八位.-1是 EOF in.read(byte[] buf) 读取数据填充到字节数组buf in.read(byte[] buf,int start,int size) //读取数据到字节数组buf 从buf的start位置开始 存放size长度的数据 4)输出流基本方法 out.write(int b) 写出一个byte到流,b的低8位 out.write(byte[] buf)将buf字节数组都写入到流 out.write(byte[] buf,int start,int size) //字节数组buf从start位置 开始写size长度的字节到流 5)FileInputStream--->具体实现了在文件上读取数据 //本身继承了InputStream查看全部
-
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。 RandomAccessFile支持随机访问文件,可以访问文件的任意位置查看全部
-
exists()方法用于判断文件或目录是否存在 file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称 ======================================== 如果要遍历子目录下的内容就需要构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常查看全部
-
File file2 = new File("e:\\javaio\\guang.txt"); if(!file2.exists()){ try{ file2.createNewFile(); createNewFile();创建文件 会有IO异常产生 }catch(I0Exception e){ e.printStackTrace(); } }else{ file2.delete(); }查看全部
-
java.io.File类用于表示文件(目录) 程序员可以通过File类在程序中操作硬盘上的文件和目录 ======================================= File类只用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问 -------------------------------------- 了解构造函数的情况 File file = new File("E:\\javaio"); file.exists(); 判断文件/文件夹是否存在 if(!file.exists()){ file.mkdir(); //如果这个文件不存在,就直接创建这个文件 }else{ file.delete(); //如果这个文件存在,就删除这个文件 } File.separator设置分隔符 =============================== file.isDirectory() 判断是否是一个目录 如果是返回true,如果不是目录or目录不存在返回false file.isFile(); 判断是否是一个文件查看全部
-
当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1= new String(byte4); //用项目默认的编码 文本文件,就是字节序列 可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码 联通,联这是一种巧合 ,他们正好符合了Utf-8编码的规则查看全部
-
byte[] bytes1 = s.getBystes(); 转换成字节序列用的是项目默认的编码gbk byte[] bytes2 = s.getBystes("gbk"); 指定某种编码 会有异常产生 throws Exception gbk编码中文占用2个字节,英文占用1个字节 byte[] bytes3 = s.getBystes("utf-8"); for(byte b:bytes3){ Systeom.out.print(Integer.toHexString(b & 0xff + "")); } 以上表示:在utf-8编码 中文占3个字节,英文占用1个字节 =============================================================================== java是双字节编码 utf-16be 中文占用2个字节,英文占用2个字节查看全部
-
java I/O 输入输出流 编码问题 File类的使用 RandomAccessFile的使用 字节流的使用 字符流的使用 对象的序列化和反序列化 String s = "xingxing"; byte[] bytes1 = s.getBytes(); for(byte b:bytes1){ //toHexString把字节(转换成了int)以16进制的方式显示 //b&0xff把前24位0去掉,只留下后8位 System.out.print(Integer.toHexString(b & 0xff)+""); }查看全部
-
输入输出流及方法查看全部
举报
0/150
提交
取消