在一个类中,可以定义接口
public class ProcessFiles {
public interface Strategy{
void process(File file);
}
}
接口Strategy内嵌在ProcessFiles中,要实现接口必须实现ProcessFiles类,它为读者提供更多的上下文信息
把字节层次中的类和字符层次中的类进行结合的类是:InputStreamReader(把InputStream转化为Reader)和OutputStreamWriter(把OutputStream转化为Writer)
RandomAccessFile类是相对独立的一个类,不同于其他IO或者NIO,在平时可以多用
ByteArrayInputStream的构造器参数为数组
DataInputStraem可以用readByte方法一次一个字节的读取
数据的存储和恢复
/**
* 使用DataOutStream时,写字符串并让DataInputStream能够恢复它的唯一可靠做法
* 就是使用UTF-8编码
* @author guafei.wgf
*
*/
public class RecoverAndMemory {
public static void main(String[] args) throws IOException{
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("")));
out.writeDouble(2.111);
out.writeUTF("That is ok");
out.writeDouble(1.222);
out.writeUTF("it is next one");
out.close();
DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream("")));
System.out.println(in.readDouble());
System.out.println(in.readUTF());
System.out.println(in.readDouble());
System.out.println(in.readUTF());
}
}
RandomAccessFile(随机访问文件类),类似于组合了DataOutStream和DataInputStream,可以利用seek()在文件中到处移动,并修改文件中的某个值。
管道流(4种PipedInputStream PipedOutputStream PipedReader PipedWriter )主要运用于任务间的通信,多线程中运用。
标准的IO模型,java提供了System.in System.out System.err 三种其中System.in是未经包装加工过的InputStream,而后两者是包装成PrintStream对象,也就是说可以直接输出到屏幕。所以可以把System.in System.out System.err转化成不同类型的流
public class Redirecting {
/**
* 这个程序将标准的输入付接到文件上,并将标准输出和标准错误重定向到另一个文件
* 主要是为了防止突然在显示器上产生大量输出,来不及看的情况
*/
public static void main(String[] args) {
PrintStream console = System.out;
try {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("Readirecting.java"));
PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("test.out")));
System.setIn(in);
System.setOut(out);
System.setErr(out);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s ;
while((s = br.readLine())!=null){
System.out.println(s);
}
System.setOut(console);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
"零基础入门学习Python"是针对那些对编程没有经验但想学习Python的人设计的教程。小甲鱼,是一位知名的编程教育者,他在B站(哔哩哔哩)上提供了配套的教学视频,使得学习过程更加生动直观。 本书《零基础入门学习...
机器学习算法基础学习总结
本篇文档的标题是“深度学习基础及数学原理”,其描述和内容涉及深度学习的核心概念和数学基础。 一、引言部分 引言部分提出图像分类问题是计算机视觉的核心任务之一,而图像分类的准确性和效率是计算机视觉领域的...
Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础...
1. 高等数学基础 高等数学是机器学习数学基础中最为重要的一部分,它主要包括微积分、微分方程等。其中,导数和微分的概念是高等数学中的核心内容。 导数的定义是用来描述函数在某一点处的瞬时变化率。其数学...
会计基础学习.pdf
计算机应用基础(本)的课程学习过程表现全文共2页,当前为第1页。计算机应用基础(本)的课程学习过程表现全文共2页,当前为第1页。计算机应用基础(本)的课程学习过程表现 计算机应用基础(本)的课程学习过程表现全文...
HTML基础学习示例代码HTML基础学习示例代码HTML基础学习示例代码 HTML基础学习示例代码HTML基础学习示例代码HTML基础学习示例代码 HTML基础学习示例代码HTML基础学习示例代码HTML基础学习示例代码 HTML基础学习示例...
html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习...
### NVIDIA DLI深度学习基础知识点解析 #### 一、NVIDIA DLI简介 NVIDIA Deep Learning Institute (DLI) 是一个提供深度学习、加速计算以及AI领域的培训与认证的平台。通过NVIDIA DLI的学习资源,学员能够掌握如何...
MySQL学习基础(1)
机器学习入门的数学基础
本文主要分享了作者在学习“国开计算机应用基础(本)形考”课程过程中的心得体会,涵盖了从计算机基础知识到具体软件应用的多个方面。 首先,计算机基础知识是学习的起点,包括计算机的发展历程、工作原理以及硬件...
机器学习的数学基础 machine learning.pdf
深度学习基础——计算机视觉证书1
HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 HTML CSS and Javascript 基础学习代码 ...
神经网络 机器学习 深度学习 学习资料 源码 基础资料 神经网络 机器学习 深度学习 学习资料 源码 基础资料 神经网络 机器学习 深度学习 学习资料 源码 基础资料 神经网络 机器学习 深度学习 学习资料 源码 基础资料 ...
根据提供的标题“白慧珍电路理论基础学习指导书及课后题修改的正确答案”以及描述,我们可以推测出这份资料主要是针对《白慧珍电路理论基础》这本书的学习辅导材料,其中包括了书中课后习题的解答等内容。...
网络基础学习2009网络基础学习2009网络基础学习2009网络基础学习2009
C语言的基础知识学习总结.zipC语言的基础知识学习总结.zipC语言的基础知识学习总结.zipC语言的基础知识学习总结.zipC语言的基础知识学习总结.zipC语言的基础知识学习总结.zipC语言的基础知识学习总结.zipC语言的基础...