1.基本输入输出流类
在java.io包中,基本输入输出流类可按读写数据的不同分为两种:字节流和字符流
字节流:读写字节类型的数据(包括ASCII表中的字符)。字节流类可以分为表示输入流的InputStream类及其子类,表示输出流的OutputStream类及其子类。
字符流:读写Unicode字符。表示输入流的Reader类及其子类,表示输出流的Writer类及其子类。
2.文件的输入输出
Java语言的java.io包中的File类是专门用来管理磁盘文件和目录的。每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息,如文件或目录的名称、文件的长度、目录中所含文件的个数等。调用File类的方法可以完成对文件或目录的常用管理操作,如创建文件或目录,删除文件或目录,查看文件的相关信息等。
FileInputStream类用于读取文件中的字节数据的字节文件输入流类;
FileOutputStream类用于向文件写入字节数据的字节文件输出流类;
FileReader类和FileWriter类用于读取文件和向文件写入字符数据。
3.练习:使用字节流和缓冲流读取一个100M的文件,测试两者的区别.
缓冲流:
package IO流;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedReader {
/**
* @param args
*/
public static void main(String[] args) {
BufferedReader br=new BufferedReader();
br.bufferedTest("pictures/1.jpg","pictures/1.bak");
}
private void bufferedTest(String path,String newpath) {
//实例化一个FileInputStream和BufferedInputStream类的对象
try {
FileInputStream fis = new FileInputStream(path);
BufferedInputStream bis=new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(newpath);
BufferedOutputStream bos = new BufferedOutputStream(fos);
//获取文件字节的总数
int length = bis.available();
//根据总数定义一个byte数组
byte [] array = new byte[length];
bis.read(array);
bos.write(array);
bos.flush();
System.out.print(new String(array));
//关闭流
bis.close();
fis.close();
bos.close();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}
字节流:
package IO流;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReader {
/**
* @param args
*/
public static void main(String[] args) {
FileReader fr=new FileReader();
fr.fileTest("pictures/1.jpg","pictures/1.bak");
}
/**
* file流的测试类
* @param path路径
*/
public void fileTest(String path,String newPath){
try {
//实例化一个FileInputStream类的对象
FileInputStream fis = new FileInputStream(path);
FileOutputStream fos = new FileOutputStream(newPath);
//获取文件字节的总数
int length = fis.available();
//根据总数定义一个byte数组
byte [] array = new byte[length];
fis.read(array);
fos.write(array);
System.out.print(new String(array));
//关闭流
fis.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
C++语言的输入与输出.ppt
此外,矩阵图能够用来展现不同类型的输入输出设备之间的关系,帮助观众理解每一种输入设备可能对应多种输出设备,反之亦然。 当我们使用树状图来表示不同输入如何触发不同的输出响应时,我们实际上在为观众展示了一...
数据结构中栈的操作,输入与输出,可以正常运行
本文将深入探讨SHELL中的输入与输出概念及其用法,这对于初学者来说是非常重要的基础知识。 1. 标准输入(stdin): 标准输入通常是键盘,但也可以重定向到其他数据源。在Shell脚本中,`符号用于重定向输入。例如...
java语言输入输出ppt讲解概述,比较适合初学者看看学习
无格式输入输出基于C++类库的输入输出,使用两个流对象cin和cout,以及与之相配套的两个输入输出运算符“>>”和“”。格式化输入输出可以使用ios类中的有关格式控制的成员函数或使用操作符的特殊类型函数进行格式...
ChatGPT技术的多模态输入与输出支持研究 本文将探讨ChatGPT技术的多模态输入与输出支持研究,并审视其潜在的应用和挑战。ChatGPT技术是OpenAI时下备受瞩目的自然语言生成模型,能够以人类方式进行对话。近期,Open...
"ChatGPT技术的多模式输入与输出处理方法研究与实践" 在 ChatGPT 技术中,处理多模式输入和输出是一项重要的挑战。为了实现更好的对话体验,我们需要研究和实践多模式输入与输出的处理方法。本文总结了 ChatGPT ...
ChatGPT 技术在多模态输入与输出的对话生成任务中的应用 ChatGPT 技术是近年来备受关注的一种对话生成模型,它可以生成流畅、连贯的对话,能够与用户进行自然而富有交互性的对话。在多模态输入与输出的对话生成任务...
java输入与输出课件,较为详细的介绍了java的输入与输出。
ChatGPT 技术的多模态输入与输出优化 ChatGPT 技术的多模态输入与输出优化是自然语言处理领域的一个重要研究方向。该技术可以接受多种形式的输入,如文本、图像、视频等,并生成与之匹配的多模态响应。这使得 ...
工业大数据分析-HIVE输入与输出教学讲义 本资源是关于工业大数据分析的教学讲义,主要讲解了HIVE输入与输出的相关知识点。 HIVE 输入与输出任务概述 HIVE输入与输出任务的主要目的是读取csv文件数据,并将其存储...
如何将图像、语音等多种形式的数据与文本输入输出无缝连接,使得对话的连贯性得到保持,是一个具有挑战性的任务。 为了克服这些挑战,研究者们提出了许多创新的方法和模型。例如,将图像和文本通过注意力机制进行...
Python输入与输出
ChatGPT技术的多模态输入与输出集成策略 ChatGPT 技术作为一种基于大规模预训练模型的对话生成方法,已经引发了广泛的关注。然而,在真实的对话场景中,多模态输入与输出的需求日益突显。因此,ChatGPT 技术的多...
shell输入与输出
C语言并不直接提供输入输出语句,而是通过调用标准库中的函数来实现。下面将详细介绍这两个函数的使用。 首先,`printf`函数是C语言的标准输出函数,用于在终端或其他输出设备上按照指定格式输出数据。其基本语法为...
Java语言程序设计中的输入与输出是程序与外界交互的重要环节,主要涉及java.io包中的各类输入输出流。本教程将详细讲解输入输出的基础知识,包括输入输出类库、标准输入输出及标准错误、文件操作等方面。 1. **输入...
Java中的输入输出流是程序与外部数据交互的重要方式,它允许我们读取和写入数据到各种来源,如键盘、文件、网络等。在Java中,输入输出流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。本次实验...
输入与输出接口技术.ppt