-
java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。 创建File对象 File file = new File("E:\\javaio");//注意“\”的转义用"\"。 file.exists();判断文件是否存在,返回boolean类型 file.mkdir();创建文件 file.mkdirs();建多级目录 file.delete();删除目录 file.isDirectory();判断是否是目录,是目录返回true,不是或者不存在都返回false file.isFile();判断是否是一个文件 file.createNewFile();创建文件,会产IO异常 直接打印file其实是调用file.toString()的内容,和打印file.getAbsolutePath()内容相同。 file.getName();获得文件的名字 file.getParent();获得父目录查看全部
-
va是双字节编码(utf-16be): 中文两个字节 英文两个字节; GBK:中文占两个字节,英文1个字节; utf-8:中文占三个字节,英文占1个字节。 中文系统下:ANSI编码代表GBK编码。查看全部
-
DataOutputStream/DataINputStream:对“流”功能的扩展,可以更加方面的读取int,long,字符等类型数据 定义:DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));查看全部
-
//文件不存在,直接创建,存在,删除后建 FileOutputStream out = new FileOutputStream("demo/out.dat"); //追加内容 //FileOutputStream out = new FileOutputStream("demo/out.dat","ture"); out.write('A');//写成了'A'的低八位 int a=10;//write只能写八位,那么写一个int需要4次每8位 out.write(a>>>24); out.write(a>>>16); out.write(a>>>8); out.write(a); byte[] gbk="中国".getBytes("gbk"); out.write(gbk); out.close(); IOUtil.printHex("demo/out.dat");查看全部
-
public static void prinHexByByteArray(String fileName)throws IOException{ FileInputStram in = new FileInputStream(fileName); byte[] bytes = new byte[20*1024]; //从in中批量读取字节,放入到buf这个字节数组中 //从第0个位置开始放,最多放buf.length个 //返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 int j=1; for(int i=0; i<bytes; i++){ if(buf[i]<=0xf){ System.out.print("0"); } System.out.print(Integer.toHexString(buf[i]+" ")); if(j++%==0){ System.out.println(); } } //使用while实现 int bytes=0; int j=1; while((bytes = in.read(buf,0,buf.length))!=-1){ for(int i=0;i<bytes;i++){ System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); if(j++%10==0){ System.out.println(); } } } }查看全部
-
//读取指定文件内容,按照16进制输出到控制台,并且每输出10个byte换行 public static void printHex(String fileName)throws IOException{ FileInputStream in = new FileInputStream(fileName); int b; int i=1; while((b=in.read())!=-1){ if(b<=0xf){ //单位数前面补零 System.out.print("0"); } System.out.print(Integer.toHexString(b)+" "); if(i++%10==0){ System.out.println(); } in.close(); }查看全部
-
//读文件,必须把指针移到头部 raf.seek(0); //一次性读取,把文件中的内容都读到字节数组中 byte[] buf = new byte[(int)raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); String s1 = new String(buf); //十六进制输出 for(byte b:buf){ System.out.println(Intger.toHexString(b & 0xff)); }查看全部
-
O流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF=End 读到-1就读到结尾 3)输入流基本方法 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--->具体实现了在文件上读取数据查看全部
-
123查看全部
-
RandomAccessFile : java提供的对文件内容的访问 既可以读文件 也可以写文件 支持随机访问文件 可以访问文件的任意位置 (1)java文件模型 : 在硬盘上的文件是byte byte byte 存储的 是数据的集合 (2)打开文件 有两种模式 rw 读写 r只读 RandomAccessFile raf=new RandomeAccessFile(file,"rw"); 文件指针, pointer=0; (3)写方法 raf.write(int) ----> 只写一个字节 (后8位) 同时指针指向下一个位置 准备再次写入 (4)读方法 int b=raf.read(); 读一个字节 (5)文件读写完成后一定要关闭 (oracle官方说明) raf.getFilePointer()获取当前指针位置 raf.length()获取文件长度 raf.seek()把指针指定到某一位置查看全部
-
RandomAccessFile : java提供的对文件内容的访问 既可以读文件 也可以写文件 支持随机访问文件 可以访问文件的任意位置 RandomAccessFile : java提供的对文件内容的访问 既可以读文件 也可以写文件 支持随机访问文件 可以访问文件的任意位置 (1)java文件模型 : 在硬盘上的文件是byte byte byte 存储的 是数据的集合 (2)打开文件 有两种模式 rw 读写 r只读 RandomAccessFile raf=new RandomeAccessFile(file,"rw"); 文件指针, pointer=0; (3)写方法 raf.write(int) ----> 只写一个字节 (后8位) 同时指针指向下一个位置 准备再次写入 (4)读方法 int b=raf.read(); 读一个字节 (5)文件读写完成后一定要关闭 (oracle官方说明) raf.getFilePointer()获取当前指针位置 raf.length()获取文件长度 raf.seek()把指针指定到某一位置查看全部
-
java是双字节编码(utf-16be): 中文两个字节 英文两个字节; GBK:中文占两个字节,英文1个字节; utf-8:中文占三个字节,英文占1个字节。 中文系统下:ANSI编码代表GBK编码。 UTF8编码下,一个中文占3个字节,英文占1个字节。 GBK编码下,一个中文站2个字节,英文占1个字节。 java是双字节编码utf-16be 该编码中文和英文都是2个字节 当字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件可以是任意编码的字节序列 如果在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码 中文系统下,ANSI编码代表GBK编码查看全部
-
//列出目录下的所有文件(目录) public static void listDirectory(File dir)throws IOException{ if(!dir.exists()){ throw new IllegalAccessException("目录"+dir+"不存在"); } if(!dir.isDirectory()){ throw new IllegalArgumentException(dir+"不是目录"); } String[] filenames = dir.list(); //返回的是字符串数组,包含子目录名称,不包含子目录下的内容 for(String string:filenames){ System.out.println(dir+"\\"+string); } //如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象 File [] file = dir.listFiles();返回的是直接目录的抽象 if(files!=null&&files.length>0){ for(File file:files){ if(file.isDiresctory()){ listDirectory(file); }else{ System.out.println(file); } } } }查看全部
-
8)BufferedInputStream&BuffredOutputStream 这两个流类为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种模式以高了IO的性能从应用程序中把输入放入文件,相当于将一缸水倒入另一缸中; FileOutputStream--->write()方法相当于一滴一滴把水转移过去 DataOutputSream--->writeXxx()方法会方便一些,相当于一瓢一瓢把水转过去 BufferedOutputStream--->write方法更方便,相当于一瓢一瓢先放入捅中,再从桶中倒入缸中查看全部
-
对子类对象进行序列化操作时,无论其父类实现序列化接口,其父类的构造函数都会被调用。 对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用。查看全部
举报
0/150
提交
取消