-
File类的创建文件的方法: File f=new File("e://javaio//123.txt");//当前文件不存在 if(!f.exits()){ f.createNewFile(); }else{ f.detete();查看全部
-
File.mkdir File.delete可以用来创建和删除目录 new File(“这里可以使用e:/或e:\\或者是File.separator”)查看全部
-
java.io.File类用于表示文件(目录),可以通过File类在程序中操作硬盘中的文件和目录,只用来表示文件、目录的信息,不能用于文件内容的访问。查看全部
-
//加上补0的批量程序<br> public static void printHexByByteArray(String fileName) throws IOException{<br> FileInputStream in = new FileInputStream(fileName);<br> byte[] buf = new byte[20 * 1024];<br> <br> int bytes = 0;<br> int j =1;<br> while((bytes = in.read(buf,0,buf.length))!=-1){<br> for (int i = 0; i < bytes; i++) {<br> if((buf[i] & 0xff) <0xf)System.out.print("0");//完善了一下加上了补零<br> System.out.print(Integer.toHexString(buf[i] & 0xff)+" ");<br> if(j++%10==0)<br> System.out.println();<br> }<br> System.out.println(j);<br> }<br> in.close(); }查看全部
-
对象序列化的目的: 将对象保存在磁盘中,或允许在网络中直接传输对象查看全部
-
b&0xff把前面的24个零去掉;Gbk编码中文占用2个字符,英文占用1个字节。<br> Utf-8编码中文占用3个字节,英文占用一个字节<br> Java是双字节编码,为utf-16be编码,中文占用两个字节,英文占用两个字节,java中一个字符可以放一个汉字<br> 当你的字节序列是某种格式的编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码。<br> String str1=new String(byte2,“utf-16be”);将字节数组转换成字符串的时候可以使用编码方式 文本文件,就是字节序列,可以是任意编码的字节序列,如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ansII编码查看全部
-
FileReader/FileWriter:可以直接写文件名的路径。与InputStreamReader相比坏处:无法指定读取和写出的编码,容易出现乱码。只能读取与项目编码方式相同的文件 FileReader fr = new FileReader("e:\\javaio\\imooc.txt"); //输入流 FileWriter fw = new FileWriter("e:\\javaio\\imooc2.txt");//输出流 字符流:字符流分为输出流(Reader)和输出流(Writer)。操作的是文本文件。 字符处理,一次处理一个字符 字符处理底层还是基本的字节序列 InputStreamReader:完成byte流解析为char流,按照编码解析 FileInputStream in = new FileInputStream("e:\\javaio\\imoocutf8.txt"); //获取字符输入流 InputStreamReader isr = new InputStreamReader(in,"utf-8");//默认项目的编码,操作的时候,要写文件本身的编码格式 OutputStreamWriter:提供char流到byte流,按照编码处理 FileOutputStream out = new FileOutputStream("e:\\javaio\\imoocutf81.txt"); //获取字符输出流 OutputStreamWriter osw = new OutputStreamWriter(out,"utf-8");查看全部
-
FileReader / FileWriter 专用对文件字符流的操作,无需进行 嵌套构造 FileReader fr = new FileReader ("目录/路径"); FileWriter fw = new FileWriter ("目录 / 路径", true ); //加上true参数表示追加 虽然不需要嵌套构造,但是不能指定读取文件的编码方式,其限制是 只能读取和项目编码相同的文件。如果非要指定读取文件的编码方式,只能使用 嵌套构造的方式。查看全部
-
2、字符流 1)编码问题 前已述及 起码有一点要非常清楚的是,一切进入计算机的都会变成字节码 2)认识文本和文本文件 java中的文本(其实就是char)16位的无符号整数,是字符的unicode编码(这是一种双自己编码) 文件是byte byte byte...的数据集合,可以缩句来理解 文件输数据集合。字节流的编码方式和序列化规则不一样就形成了不同的文件:文本文件,音频文件,视频文件等 文本文件是文本(char的编码)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的数据存储集合 (3)字符流 抽象类 Reader Writer 二者实现了数据的两种相互转换,存储时我们用字节码的形式存储,读入计算机内存处理(包括显示,运算等)是用字符(ABC...)的形式。 字符的处理,一次处理一个字符。其底层仍然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码接卸 OutputStreamWriter 提供char流到byte流,按照编码处理。 为什么上面特别说明了一下文本文件,因为字符流大部分操作的都是文本文件。毕竟文本文编,以编码的方式不容易认读,我们才把字符编码解析为字符。如果Reader一个MP3之类的音频文件,根本就没有什么意义,因为,声音本来就不是用来看的,所以说字符流主要是用于处理文本文件的查看全部
-
public String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 exists()方法用于判断文件或目录是否存在 file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称 ======================================== 如果要遍历子目录下的内容就需要构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常 File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (file!=null && files.length > 0){ for(File file:files){ if(file.isDirectory()){ listDirectory(file); }else{ System.out.println(file); } } }查看全部
-
中文机器上创建的文本文件只能识别ansi编码 如果是由其他地方创建的文本文件 再拷贝出来的则可以识别任意的编码 UTF-8编码 汉字占3个字节 英文占一个 gbk编码 汉字占2个字节 英文占1个 UTF-16be编码是java中的编码 汉字和英文都是占两个字节 .getBytes();将字符串变成byte类型 integer.toHexString();将字节流变成16进制的int类型 用什么编码将字符串变成字节流 就要用同样的编码才能将其变回去 new String(“dd”,"UTF-8");可以自己选择编码方式 缺省则是默认工程属性中默认的编码查看全部
-
对于一个文件的copy示例: 有三种方法实现:单字节copy||批量读取copy||带缓冲的copy 批量读取速度最快查看全部
-
readInt readLong 方法都是对FileInputStream方法的包装 DataOutputStream/DataInputStream 对“流”功能的扩展,可以更加方便的读取 int,long, 字符等类型数据 DataOutputStream:使用FileOutputStream构造出来,通过包装FileOutput,可以调用FileOutput类的write方法来构造新的更方便的写方法: new DataOutputStream(new FileOutptStream(file)) wrieteUTF()采用utf-8编码写出字符串 用utf-16be写出字符串,或字符串数组 写完之后一定要关闭流 数据输入输出流: DataInputStream、DataOutputStream 是对“流”功能的扩展,方便读写 DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeLong(10l);字母l dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国");查看全部
-
2、字符流 1)编码问题 前已述及 起码有一点要非常清楚的是,一切进入计算机的都会变成字节码 2)认识文本和文本文件 java中的文本(其实就是char)16位的无符号整数,是字符的unicode编码(这是一种双自己编码) 文件是byte byte byte...的数据集合,可以缩句来理解 文件输数据集合。字节流的编码方式和序列化规则不一样就形成了不同的文件:文本文件,音频文件,视频文件等 文本文件是文本(char的编码)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的数据存储集合 (3)字符流 抽象类 Reader Writer 二者实现了数据的两种相互转换,存储时我们用字节码的形式存储,读入计算机内存处理(包括显示,运算等)是用字符(ABC...)的形式。 字符的处理,一次处理一个字符。其底层仍然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码接卸 OutputStreamWriter 提供char流到byte流,按照编码处理。 为什么上面特别说明了一下文本文件,因为字符流大部分操作的都是文本文件。毕竟文本文编,以编码的方式不容易认读,我们才把字符编码解析为字符。如果Reader一个MP3之类的音频文件,根本就没有什么意义,因为,声音本来就不是用来看的,所以说字符流主要是用于处理文本文件的查看全部
-
父类实现Serializable接口,其子类都可以直接进行序列化(子类不需要再继承接口) 对子类的序列化时会调用其父类的构造函数再调用自己的构造函数. 对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用.查看全部
举报
0/150
提交
取消