`
guafei
  • 浏览: 326299 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基础学习1

 
阅读更多
在一个类中,可以定义接口
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();
}
}
}
分享到:
评论

相关推荐

    应用数学基础学习指导

    《应用数学基础学习指导》不仅是一本教材,更是工科硕士研究生通往数学殿堂的一把钥匙。通过对本书的学习,不仅可以掌握扎实的数学基础知识,还能培养出良好的逻辑思维能力和解决问题的能力,为未来的研究工作打下...

    零基础入门深度学习(系列) 中文PDF完整版

    零基础入门深度学习(1) - 感知器 零基础入门深度学习(2) - 线性单元和梯度下降 零基础入门深度学习(3) - 神经网络和反向传播算法 零基础入门深度学习(4) - 卷积神经网络 零基础入门深度学习(5) - 循环神经网络 零...

    深度学习基础pdf

    深度学习基础pdf

    学习html基础.zip

    学习html基础学习html基础学习html基础学习html基础学习html基础 学习html基础学习html基础学习html基础学习html基础学习html基础 学习html基础学习html基础学习html基础学习html基础学习html基础 学习html基础学习...

    概率论基础学习指导书 李贤平

    概率论基础学习指导书 李贤平

    计算机应用基础(本)的课程学习过程表现.docx

    计算机应用基础(本)的课程学习过程表现全文共2页,当前为第1页。计算机应用基础(本)的课程学习过程表现全文共2页,当前为第1页。计算机应用基础(本)的课程学习过程表现 计算机应用基础(本)的课程学习过程表现全文...

    OpenCV计算机视觉基础教程(Python版)课件10机器学习和深度学习.pdf

    OpenCV计算机视觉基础教程(Python版)课件10机器学习和深度学习.pdfOpenCV计算机视觉基础教程(Python版)课件10机器学习和深度学习.pdfOpenCV计算机视觉基础教程(Python版)课件10机器学习和深度学习.pdfOpenCV计算机...

    Java基础学习Java基础学习

    Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础...

    零基础入门深度学习.pdf

    零基础入门深度学习(1) - 感知器 零基础入门深度学习(2) - 线性单元和梯度下降 零基础入门深度学习(3) - 神经网络和反向传播算法 零基础入门深度学习(4) - 卷积神经网络 零基础入门深度学习(5) - 循环神经网络 零...

    会计基础学习.pdf

    会计基础学习.pdf

    JavaScript js基础学习 示例代码

    JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础学习 示例代码JavaScript js基础...

    HTML基础学习示例代码.zip

    HTML基础学习示例代码HTML基础学习示例代码HTML基础学习示例代码 HTML基础学习示例代码HTML基础学习示例代码HTML基础学习示例代码 HTML基础学习示例代码HTML基础学习示例代码HTML基础学习示例代码 HTML基础学习示例...

    html + css 基础学习.zip

    html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习html + css 基础学习...

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    NVIDIA DLI 深度学习基础 答案(领取证书用)

    ### NVIDIA DLI深度学习基础知识点解析 #### 一、NVIDIA DLI简介 NVIDIA Deep Learning Institute (DLI) 是一个提供深度学习、加速计算以及AI领域的培训与认证的平台。通过NVIDIA DLI的学习资源,学员能够掌握如何...

    C++基础学习资料

    适合比较基础的同学学习,内容非常全面,相信大家看完会收获很多。

    html基础教程学习

    html基础教程学习

    机器学习入门的数学基础 下载

    机器学习入门的数学基础

    nodejs基础学习视频

    nodejs基础学习视频nodejs基础学习视频nodejs基础学习视频nodejs基础学习视频

Global site tag (gtag.js) - Google Analytics