`
612星球
  • 浏览: 9739 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

十二.IO流

 
阅读更多
BufferedIOTest.java

package cn.netjava.lesson16;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
* Buffered流的测试类
*/
public class BufferedIOTest {

/**
* 主函数
*/
public static void main(String[] args) {
BufferedIOTest fiot = new BufferedIOTest();
fiot.copyFile("src/cn/netjava/lesson16/BufferedIOTest.java",
"src/cn/netjava/lesson16/BufferedIOTest.txt");
}

/**
* 读取一个文件的内容,并且输出在控制台
*/
public void copyFile(String path, String dest) {
try {
// 创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
// 创建缓冲输入流对象
BufferedInputStream bis = new BufferedInputStream(is);
// 创建一个输出流对象
OutputStream os = new FileOutputStream(dest);
// 创建缓冲输出流对象
BufferedOutputStream bos = new BufferedOutputStream(os);
//得到文件的长度
int length = bis.available();
//创建一个数组对象
byte [] array = new byte[length];
bis.read(array);
bos.write(array);
bos.flush();//强制写入
//关闭
bis.close();
bos.close();
// 关闭
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

FileIOTest.java

package cn.netjava.lesson16;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
* File流的测试类
*/
public class FileIOTest {

/**
* 主函数
*/
public static void main(String[] args) {
FileIOTest fiot = new FileIOTest();
fiot.readFile("src/cn/netjava/lesson16/FileIOTest.java");
fiot.copyFile("src/cn/netjava/lesson16/FileIOTest.java","src/cn/netjava/lesson16/FileIOTest.txt");
}

/**
* 读取一个文件的内容,并且输出在控制台
*/
public void copyFile(String path,String dest){
try {
//创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
//创建一个输出流对象
OutputStream os = new FileOutputStream(dest,true);
//循环读取文件的内容,并且写入文件
int value;
while((value = is.read()) != -1){
os.write(value);
}
//关闭
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 读取一个文件的内容,并且输出在控制台
*/
public void readFile(String path){
try {
//创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
int length = is.available();//获取文件的字节总数
//定义一个数组
byte [] array = new byte[length];
//循环判断是否到文件末尾
// int value,i=0;
// while((value = is.read())!=-1){
// array[i] = (byte)value;
// i++;
// }

//一次读取真个byte数组的长度
is.read(array);
//关闭
is.close();
String str = new String(array);
System.out.println(str);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


ObjectIOTest.java

package cn.netjava.lesson16;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

import cn.netjava.lesson10.Student;

/**
* Object流的测试类
*/
public class ObjectIOTest {

/**
* 主函数
*/
public static void main(String[] args) {
ObjectIOTest fiot = new ObjectIOTest();
fiot.readFile(
"src/cn/netjava/lesson16/ObjectIOTest.txt");
}

/**
* 写入一个文件的内容
*/
public void writeFile(String path) {
try {
// 创建一个输出流对象
OutputStream os = new FileOutputStream(path);
// 创建缓冲输出流对象
ObjectOutputStream oos = new ObjectOutputStream(os);
//创建对象
Student stu = new Student("张三","201109001",19,10);
oos.writeObject(stu);//将对象写入到文件中
//关闭
oos.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 写入一个文件的内容
*/
public void readFile(String path) {
try {
// 创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
// 创建缓冲输入流对象
ObjectInputStream ois = new ObjectInputStream(is);
//创建对象
Student stu = (Student)ois.readObject();//将对象写入到文件中
System.out.println(stu.toString());
//关闭
ois.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

}

分享到:
评论

相关推荐

    javaio流学习总结.pdf

    JavaIO流学习总结 JavaIO流是Java语言中最基本的输入/输出机制,它提供了多种方式来读取和写入数据。下面是JavaIO流的学习总结。 一、 IO流的分类 IO流可以从不同的角度进行分类,包括: * 按流的方向分为:输入...

    C++语言程序设计形考三实验十二.docx

    在给定的"C++语言程序设计形考三实验十二.docx"中,主要涉及的知识点是C++中的文件操作和自定义数据类型的IO流重载。以下是对这些知识点的详细解释: 1. 文件操作: 在C++中,文件操作是通过`fstream`库来实现的,...

    Java数据流编程

    ### Java 数据流编程详解 #### 一、引言 在Java编程中,数据流是处理文件输入输出的基础技术之一。本文将重点介绍几种常见的数据流操作方式:单字节流复制、字节数组流复制以及缓冲流复制,并通过具体的代码示例来...

    Java IO 工具类大全

    十二、NIO(New IO) Java 1.4引入了NIO(Non-blocking I/O)框架,提供了通道(Channel)和选择器(Selector)的概念,允许进行非阻塞I/O操作,提高了并发性能。 十三、FileChannel FileChannel是NIO中处理文件...

    oddstream.github.io:github页面仓库为https

    ) 这是一个精选的小型单人纸牌游戏集,包括:艾格尼丝(莫尔黑德和莫特-史密斯版本)·汇编·澳大利亚人·贝克的十二个·封锁·坎菲尔德·残酷·四十八岁·四十个小偷·空当·约瑟芬·克朗代克·有限·玛莎·拖把...

    Java高级(题目+答案)

    #### 十二、基于TCP的网络通信的一般步骤 - **服务端步骤**: 1. 创建`ServerSocket`对象,并绑定到指定端口。 2. 调用`accept()`方法等待客户端连接。 3. 获取客户端连接并创建`Socket`对象。 4. 通过`Socket`...

    C++输入输出流详解

    - 输入/输出流对象:`fstream iofile;` 2. **打开文件**: - 使用成员函数 `open()`: ```cpp infile.open("myfile.txt", ios::in); outfile.open("youfile.txt", ios::out); ``` - 使用构造函数打开文件: ...

    【eoeAndroid特刊】第六期 数据通信-成为Android数据流大师

    ### 数据通信——成为Android数据流大师 #### 一、SD卡概述及深层次介绍 SD(Secure Digital)卡是一种用于移动设备的小型存储卡。在Android系统中,SD卡被广泛用作外部存储设备,用于存储应用程序数据、媒体文件...

    面试知识点总结--java基础类库.pdf

    在 Java.io 包中还有许多其他的流,低层流与高层流,高层流主要是为了提高性能和使用方便。 * 字节流:InputStream 和 OutputStream * 字符流:Reader 和 Writer 二、线程的基本概念 线程是进程内的并发,没有...

    专题十二: JAVA程序设计语言.rar

    六、IO流 Java的输入/输出流系统支持处理文件、网络通信等数据传输。了解字节流和字符流的区别,以及缓冲流、对象流等高级用法是必要的。 七、多线程 Java提供了丰富的多线程支持,包括Thread类和Runnable接口,...

    Guava 16.0 API (CHM格式)

     十二. Math: 优化的 math 工具类,经过完整测试。  十三. Reflection: Guava 的 Java 反射机制工具类。 如果文件打开看不到右边的内容,是因为你的操作系统为了安全对下载的chm文件进行了锁定,只需要在打开前...

    j2se基础面试

    十二、流: 1. 流是处理输入/输出数据的抽象概念,分为字节流和字符流。 2. 文件流:FileInputStream, FileOutputStream, FileReader, FileWriter。 3. 缓冲流:BufferedInputStream, BufferedReader等,提高读写...

    Udemy_Java_14_230_Intro_to_IO

    十二、Java 7的文件API Java 7引入了新的Files类和Path接口,提供了更加简洁和强大的文件操作功能。 十三、Java 8及以后的改进 Java 8增强了文件读写API,引入了Files.lines()方法,方便地按行读取文件。Java 11...

    java初级知识

    ### Java初级知识要点详解 #### 一、Java概述与基础知识 **1....** 编程是指通过编写计算机程序来实现特定功能的过程。它涉及使用特定的编程语言(如Java),按照一定的规则和逻辑组织代码,以解决具体问题或实现特定...

    Thinking in JAVA

    六、IO流 1. 字节流和字符流:包括输入流和输出流,以及缓冲流、转换流和对象流等。 2. NIO(New IO):Java 1.4引入的新IO模型,提供了更高效的数据传输方式。 七、多线程 Java内置对多线程的支持,书中会讲解如何...

    Head First Java 2nd 英文版

    这些API提供了丰富的方法和类,比如java.lang包含了Java编程语言的核心类,java.util则包含了各种集合框架类,java.io用于处理输入输出流,***则提供了网络通信的类。 知识点五:异常处理 Java提供了一套完整的异常...

    Java2 学习指南.rar

    `java.io`包提供了各种流类,如`FileInputStream`和`FileOutputStream`。 六、集合框架 Java2引入了强大的集合框架,包括接口(如`List`、`Set`、`Map`)和实现(如`ArrayList`、`HashSet`、`HashMap`),它们提供...

    最全的java面试题

    - **Java序列化**:是一种将Java对象转换成流的过程,以便于传输或持久化存储。 - **实现序列化**:实现`java.io.Serializable`接口。示例: ```java import java.io.*; public class Employee implements ...

    JAVA学习笔记

    #### 十二、IO 输入/输出(I/O)操作涉及数据的读取和写入。 ##### 1. IO常识 I/O操作通常涉及文件读写、网络通信等。 ##### 2. 字节流 字节流是以字节为单位进行读写的流。 ##### 3. 过滤流 过滤流是对已存在...

Global site tag (gtag.js) - Google Analytics