java中在使用字节流和字符流不关闭流引起的情况分析?

package com.hephec;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

public class OutputStreamTest{

public static void main(String[] args) throws Exception{

OutputStream out=new FileOutputStream(new File("E:"+File.separator+"test.txt"));

String str="zhangsan";

byte[] b=str.getBytes();//将字符串转化为字节数组

out.write(b);

//out.close();//未关闭流

}

}

//result:zhangsan

//虽然没有关闭字节流,但是文件中依然有内容输出,证明字节流是直接操作文件本身的

package com.hephec;

import java.io.File;

import java.io.FileWriter;

import java.io.Writer;

public class OutputStreamTest{

public static void main(String[] args) throws Exception{

Writer writer=new FileWriter(new File("E:"+File.separator+"test.txt"));

String str="zhangsan";

byte[] b=str.getBytes();//将字符串转化为字节数组

writer.write(b);

//writer.close();//未关闭流

}

}

//result:

//程序运行时,发现没有任何内容,这是因为字符流操作使用了缓冲区,而在关闭字符流时会强制将缓冲区的内容进行输出,但是程序没有关闭,则缓冲区的内容是无法输出的

时间: 2024-10-07 02:13:14

java中在使用字节流和字符流不关闭流引起的情况分析?的相关文章

java IO(五):字节流、字符流的选择规律

*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hljs-comment, .hljs-template_comment, .diff .hljs-header, .hljs-javadoc { color: #998; font-style: italic; } .hljs-keyword, .css .rule .hljs-keyword, .h

java:I/O 字节流和字符流

字节流 InputStream和OutputStream的子类:FileInputStream 和 FileOutputStream 方法: int read(byte[] b,int off,int len); void write(byte[] b,int off,int len); 字符流 Reader和Writer的子类:FileReader 和 FileWriter 方法: int read(char[] b,int off,int len); void write(char[] b,

java中基本类型与装箱基本类型“==”比较出现的几种情况

java中基本类型与装箱基本类型"=="比较出现的几种情况 java有一个类型系统有两部分组成,包含基本类型(primitive),例如:int.double等,还有引用类型(reference type),例如:String.List.每个基本类型都有一个对应的引用类型,称为装箱基本类型(boxed promitive).装箱基本类型中对应于int.double的是Integer.Double. Java 1.5发行版本中增加了自动装箱和自动拆箱,自动装箱和自动拆箱就是我们所知道的&

Java IO-file(读写查)字节流、字符流

使用字节流操作汉字或特殊的符号语言的时候,容易乱码,建议使用字符流. 先有字节流,后有字符流,字符流是对字节流的补充. 使用记事本打开某个文件,可以看到内容的就是文本文件,否则可以理解二进制. 一般的,操作二进制文件(图片,音频,视频等)必须使用字节流. 一般的,操作文本文件使用字符流. 如果不清楚是哪一类型文件,使用字节流. -----------------------------------------字节流-----------------------------------------

JAVA输入/输出流(字节流、字符流、缓冲流)

JAVA输入/输出流 前期知识准备 1.基本java语法 基本原理: 程序在运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流对象.输入流的指向称作它的源,程序从指向源的输入流中读取源中数据.另一方面,程序在处理数据后,可能需要将处理结果写入到永久的存储媒介中或传给其他应用程序,这就需要使用输出流对象.输出流的指向称作它的目的地,程序通过向输出流中写入数据把数据传送到目的地. (本博文只给出文件字节流,文件字符流,缓冲流实例) 文件字节流: FileInputSt

理解Java中的IO字节流(File的输入输出理解)

IO概念 什么是IO Java中IO操作主要是指使用java.io包下的内容,进行输入.输出操作.输入也叫做读取数据,输岀也叫做作写出数据. IO的分类 根据数据的流向分为:输入流和输出流. 输入流:把数据从其他设备上读取到内存中的流. 输出流:把数据从内存中写出到其他设备上的流. 格局数据的类型分为:字节流和字符流. 顶级父类们 字节流 一切文件数据(文本.图片.视频等)在存储时,都是以二进制数字的形式保存,都是一个ー个的字节,在传输时也是一样如此.所以,字节流可以传输任意文件数据.在操作流的

java中向Mysql插入中文字符出现乱码

昨天新建了个Mysql数据库表,在JAVA中插入中文字符时,发现数据库中的插入结果是乱码.实际是字符集不符合问题. 针对这个问题的解决方法有很多,例如这个文章java与mysql乱码的问题不过我建议将表删掉重新建表,建表时默认字符集设置为UTF-8,这样可以避免以后出现各种问题. 可以通过语句show create table table_name来查看该表的编码格式.例如我的是: CREATE TABLE `blog` ( `title` varchar(30) NOT NULL DEFAUL

Java中的IO字节流

 关闭流的顺序: * 当A依赖B的时候先关闭A,再关闭B * 带缓冲的流最后关闭的时候会执行一次flush ByteArrayInputStream :是字节数组输入流,作用是把字节串(或叫字节数组)变成输入流的形式 1 package object.io; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayOutputStream; 5 import java.io.FileOutputStream; 6 im

String源码分析之Java中的String为什么是不可变的以及replace方法源码分析

什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对象总是存有疑惑.看下面代码: String s = "ABCabc";