如何确定使用哪一个IO对象

2014.9.3

来源于毕向东老师的讲解

关于java的输入输出,最痛苦的就是:流对象太多,不知道用哪一个

首先,确定体系

一、明确源和目的。

确定是输出流:writer  outputstream

还是输入流: reader   inputstream

二、确定操作的数据是不是文本,

然后,我们明确要使用的对象。

通过设备来区分。

用于操作文件:

fileReader(从文本文件(字符)读取)(编码方式是默认的)(要指定就用InputStreamReader)

fileWriter(向文本(字符)文件写入)默认覆盖,可以指定添加在后边

fileInputStream(从二进制文件读取)

fileOutputStream

PrintStream 是处理流,可以包装OutputStream,用于从内存中方便的向其中print(任何类型)。

控制台:Sytem.out(PrintStream).

键盘:System.in(InputStream).

处理流:

PrintStream,用于处理OutputStream,方便的向其中写入任何数据。(有自动刷新,println或者“\n”)

可以指定编码。PrintStream(OutputStream,"码表");

转换流:

InputStreamReader

InputStreamReader reader=new InputStreamRaeder(System.in);

BufferedReader br=new BufferedReader(reader);

OutputStreamWriter

转换流的字符编码:

OutputStreamWriter(OutputStream out,"码表")

InputStreamReader(InputStream in,"码表")

其他编码:

String的构造方法有指定码表

解码:String(byte[],charset);

编码:getBytes(charset);

处理字符串的流:

StringReader

从已有的字符串中读取:

String src="fgkasdhfkjhsdfkjhads";

StringReader sr=new StringReader(src);

StringWriter

写后,形成一个新的字符串,内部使用的的StringBuffer.

StringWriter sw=new StringWriter();

sw.write("dfasdhjfasd");

sw.toString();

缓冲流:

BufferedReader,处理Reader,提供读取一行的功能。

BufferedWriter,处理Writer,提供newLine()。

时间: 2024-10-08 10:13:44

如何确定使用哪一个IO对象的相关文章

java学习之IO对象流

//注意对象类要打标记实现Serializable接口 1 package com.gh; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.ObjectInputStrea

Java中IO对象的输入输出流

输入流: public void inputDemo () throws IOException { //文件名称 String fileName = "d:\\aaa.txt"; //通过文件名称创建文件对象 File file = new File(fileName); //创建一个输入流对象 // new FileOutputStream(file); FileInputStream fis = new FileInputStream(fileName); // int c; /

Go36-33-临时对象池(sync.Pool)

临时对象池(sync.Pool) sync.Pool是Go语言标准库中的一个同步工具. 介绍 sync.Pool类型可以被称为临时对象池,它的值可以被用来存储临时的对象.它属于结构体类型,在它的值被真正使用之后,就应该再被复制了. 临时对象,就是不需要持久使用的某一类值.这类值对于程序来说可有可无,但如果有的话明显更好.它们的创建和销毁可以在任何时候发生,并且完全不会影响到程序功能.同时,它们也应该是无需被区分的,其中的任何一个值都可以代替另一个.如果某类值完全符合上述条件,就可以把它们存储到临

Tomcat如何与Servlet对象进行交互

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品.下面我们描述一下Tomcat与Servlet是如何工作的,首先看下面的时序图. 1.1.Web客户向Servlet容器(Tomcat)

20170831 - Q - Java IO操作

1 当需要将对象转化为字节用什么? 2 使用对象流字节化对象时需要注意什么? 3 如何将字节化的对象转换为文件数据? 4 什么是对象序列化,对象反序列化? 5 对象反序列化返回的是二进制的数据还是对象? 5 一旦实现了serializable接口,就需要? 6 如何选择性写出对象属性?何时需要使用? 7 按单位分流,字节流,字符流. 8 java内字符皆是char型数据? 9 用什么读取字符? 10 可以用字符流复制mp3文件吗? 11 用什么流可以直接写入字符串? 12 如何制定字符输入流的字

20170831 - A - Java IO操作

1 当需要将对象转化为字节用什么?对象流Person p = new Person("苍老师",18,"男" ,list);System.out.println(p); FileOutputStream fos = new FileOutputStream("person.obj");ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(p);oos.close

python之协程与IO操作

协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕. 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序. 子程序调用总是一个入口,一次返回,调用顺序是明确的.而协程的调用和子程序不同. 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,

IO包中的其他类

查看各对象API文档 打印流 PrintWriter PrintStream 序列流:对多个流进行排列合并 SequenceInputStream 1 public static void main(String[] args) throws IOException { 2 3 4 /* 5 * 需求:将1.txt 2.txt 3.txt文件中的数据合并到一个文件中. 6 */ 7 8 // Vector<FileInputStream> v = new Vector<FileInput

[c++primer][08]标准IO库

C++的输入/输出由标准库提供,支持对文件.控制窗口和string对象的读写. 8.1 面向对象的程序库 IO类型在三个独立的头文件中定义,iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,sstream所定义的类型用于读写存储在内存中string对象. 如果函数有基类类型的引用形参时,可以给函数传递其派生类型的对象.即对istream&进行操作的函数,也可以使用ifstream或者istringstream对象来调用. 标准库定义了一组相关类型,支持wchar_t