Java IO操作常犯的错 柔光的暖阳◎ 2022-05-14 11:43 223阅读 0赞 ## 读写数据时的坑 ## * 如果文件比较大时,一次性读取可能会出现内存溢出的情况 byte[] bytes = new bytes[is.available()]; is.read(bytes); * 循环读取,写出时可能会出现有重复字节 byte[] bytes = new bytes[1024]; int len; while((len = is.read(bytes))!=-1){ // os.write(bytes); 可能出现重复字节 os.write(bytes,0,len); } * 使用`BufferedInputStream(InputStream)/BufferedOutputStream(OutputStream)`字节缓冲流时,可能会出现数据不完整。对于字符流,也有字符缓冲流BufferedReader/BufferedWriter,并且提供`readLine()`和`newLine()`方法 int len; while((len = bis.read())!=-1){ bos.write(len); } // 一定要关闭流或者刷新流,因为如果不执行close或者flush,那么拷贝的数据可能要小一点。 // 为什么会小?因为缓冲区中可能还有数据没有刷新到磁盘。 bis.close(); bos.close(); * 字节流读写中文可能出现乱码 一个中文字是两个字节,假如使用`read()`读取,那么必定会出现一个中文字被读取两次,这样会导致乱码。读取中文数据时,建议使用字符流,在写出中文时,必须要将中文转成字节数组。 OutputStream os = new FileOutputStream("D://test.txt"); os.write("我读书少 你不要骗我".getBytes()); * 字符流不能拷贝非纯文本,因为读取的时候会将字节转成字符,在转换过程中,找不到的字符就会用“?”来代替
相关 Java新手常犯的数组操作问题 作为一名Java新手,常见的数组操作问题可能包括以下几点: 1. 数组声明和初始化: - 错误:`int[] arr = new int[0]; // 初始化为空` - 正确 谁借莪1个温暖的怀抱¢/ 2024年10月18日 04:57/ 0 赞/ 42 阅读
相关 初学者常犯的Java集合操作错误实例 在学习Java集合操作时,初学者可能会遇到一些常见的错误。这里我给出几个实例: 1. **类型不匹配**: ```java List<String> stringList = 迈不过友情╰/ 2024年10月13日 15:42/ 0 赞/ 45 阅读
相关 新手常犯的Java集合操作误区 作为Java编程的新手,可能会遇到一些集合操作上的误区。以下是几个常见的例子: 1. **误解添加元素的方式**: 新手可能会直接将对象添加到List、Set等集合中, Dear 丶/ 2024年09月24日 22:36/ 0 赞/ 63 阅读
相关 初学者常犯的Java字符串操作错误实例 在Java中,字符串操作是非常常见且重要的部分。但初学者往往容易犯一些常见的错误。以下是一些例子: 1. **拼写错误**:直接使用错别字进行操作,如"teh string" 梦里梦外;/ 2024年09月20日 07:15/ 0 赞/ 67 阅读
相关 实战经验:Java常犯的集合操作错误 在Java编程中,处理集合(如List、Set等)时,常见的错误包括: 1. **类型不匹配**: 当你试图向已知类型的集合添加元素时,如果提供的类型与集合的实际类型不 系统管理员/ 2024年09月17日 19:48/ 0 赞/ 57 阅读
相关 初级Java程序员常犯的集合操作错误 作为初学者,Java集合操作过程中常见的错误包括但不限于以下几个方面: 1. **类型不匹配**: 集合操作通常需要将某种类型的数据放入或从中取出。如果数据类型的定义与 我会带着你远行/ 2024年09月17日 19:06/ 0 赞/ 59 阅读
相关 Java初学者常犯的集合操作错误案例 作为Java初学者,常见的集合操作错误主要有以下几种: 1. 集合类型不匹配: ```java List<String> list = new ArrayList<>(); 冷不防/ 2024年09月11日 13:48/ 0 赞/ 58 阅读
相关 初学者常犯的Java集合操作误区 作为初学者,我们在进行Java集合操作时,可能会遇到一些误区。以下是一些常见的例子: 1. **混淆ArrayList和List接口**: - 误以为所有的列表都是Ar 不念不忘少年蓝@/ 2024年09月05日 16:06/ 0 赞/ 62 阅读
相关 Java IO操作常犯的错 读写数据时的坑 如果文件比较大时,一次性读取可能会出现内存溢出的情况 byte[] bytes = new bytes[is.availa 柔光的暖阳◎/ 2022年05月14日 11:43/ 0 赞/ 224 阅读
还没有评论,来说两句吧...