1.输入流代表从外设流入到计算机内存的数据序列,输出流代表计算机内存向外设的数据序列。
根据数据类型不同,流分为两类:一种是字节流(Byte流),一次读写8位二进制数,InputStream和OutputStream设计成字节流;一种是字符流(Character流),一次读写16位二进制数,Reader和Writer为字符流设计。
2.FileInputStream和FileOutputStream是InputStream和OutputStream的直接子类,负责对本地磁盘文件的顺序读写工作;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class testFileInOutputStream {
public static void main(String[] args) throws IOException {
File file=new File("E:/test","file.txt");//文件对象
FileInputStream fis=new FileInputStream(file);//文件输入流
byte[]b=new byte[(int)file.length()];//定义一个字节数组
fis.read(b);//文件输入流将内容写入到字节数组中
File copyFile=file.createTempFile("CopyFile", ".txt",new File("E:/"));//在E:/test的路径下创建文件名CopyFile,扩展名.txt的临时文件
FileOutputStream fos=new FileOutputStream(copyFile);//创建文件输出流
fos.write(b);//将数组b中的内容写入到流中
fos.close();//关闭
fis.close();//关闭
}
}
结果在E:/test下产生了一个新的文件,内容跟原先的内容一样。但是后缀名改为doc后里面的内容是乱码,应该是编码的问题
3.InputStreamReader和OutputStreamWriter是由字节流转换成字符流的通道。使用方法跟FileInputStream类似。以下是一个关于流的简单输入和输出
public class testStream {
public static void main(String[] args) {
int c;
InputStreamReader in=new InputStreamReader(System.in);//创建输入流
OutputStreamWriter out=new OutputStreamWriter(System.out);//创建输出流
System.out.println("输入一行字符,回车结束!");
try {
while((c=in.read())!='\n')//c=in.read(),c就是从输入流中获得的值
out.write(c);//将c写到输出流中
out.close();//关闭输出流,若不关闭屏幕上什么也没有
in.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("输入流有误!");
}
}
}
4.FileReader和FileWriter的使用
System.out.println("请输入留言!");
int n;
InputStreamReader in=new InputStreamReader(System.in);
File f=new File("E:/test","a.txt");
FileReader fr=new FileReader(f);
FileWriter fw=new FileWriter(f,true);//此处设置为true,向文件尾部追加内容,如果不加则是覆盖原先的内容
while((n=in.read())!='\n'){
fw.write(n);//将内容写入到文件输出流中
}
in.close();
fw.close();
char[]ch=new char[(int)f.length()];//查看文件中内容
fr.read(ch);//将文件内容写入到ch中
for(int i=0;i<ch.length;i++){
System.out.println(ch[i]);
}
fr.close();
5.BufferedReader和BufferedWriter缓存字符流,可以提高字符流的处理效率
//缓存System.in字符输入流
BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
//缓存FileWriter字符输出流
BufferedWriter bfw=new BufferedWriter(new FileWriter(new File("E:/test","a.txt")));
String input=null;
//每读一行进行一次写入动作
System.out.println("输入字符串,End结束");
while(!(input=bfr.readLine()).equals("end")){
bfw.write(input);//将读到的内容写到输出流中
bfw.newLine();
}
bfr.close();
bfw.close();
6.将一个文件中的内容一行一行读取的例子:
//按行顺序第读取一个可读文件的内容
String s;//声明一个变量
FileInputStream is;//声明FileInputStream变量
InputStreamReader ir;//声明InputStreamReader变量
BufferedReader in;//声明BufferedReader变量
try{
is=new FileInputStream("E:\\test\\a.txt");//创建FileInputStream对象
ir=new InputStreamReader(is);//创建InputStreamReader对象
in=new BufferedReader(ir);//创建BufferedReader对象
while((s=in.readLine())!=null){//判断下一行不为空
System.out.println("Read:"+s);
}
}catch(FileNotFoundException e){//文件找不到异常
System.out.println("File not found!");
System.exit(-2);
}catch(IOException e){
System.out.println("error:"+e);
System.exit(-3);
}
分享到:
相关推荐
在Java编程语言中,输入/输出流(Input/Output Stream,简称I/O流)是处理数据传输的基础。本文将深入探讨字符流的概念,包括它的作用、类型以及如何在实际编程中应用。首先,我们理解一下标题中的“字符流”:在...
Java输入输出流是Java编程中一个非常重要的概念,主要用于数据的读取和写入操作,包括文本文件和二进制文件。在实验9中,主要目的是理解和掌握I/O流的分类,以及如何进行文本和二进制文件的读写。 I/O流在Java中被...
Java的输入输出流体系可以分为两大类:输入流和输出流。输入流用于读取数据,而输出流用于写入数据。 输入流的基类是InputStream,它提供了基本的读取操作。输出流的基类是OutputStream,它提供了基本的写入操作。 ...
Java程序设计中,与系统输入/输出界面进行数据通信是通过输入输出流(I/O流)实现的。I/O流是Java的核心特性之一,允许程序读取数据源(如键盘、文件)并写入数据目标(如显示器、文件)。在Java 2中,这个过程尤其...
Java 输入/输出流是Java程序进行数据传输的关键机制,它允许程序从源(如键盘、文件)接收数据或将数据发送到目的地(如显示器、文件)。Java中的I/O流分为四类:字节流(Byte Streams)和字符流(Character Streams...
Linux 系统标准输入/输出和重定向 Linux 系统中标准输入/输出和重定向是两个非常...标准输入/输出和重定向是 Linux 系统中非常重要的概念,它们可以帮助用户更好地控制输入/输出流,使得命令的输出更加灵活和方便。
Java程序设计中的输入输出流和文件操作是编程中不可或缺的部分,它们允许程序与外部世界进行数据交换,包括读取文件内容、写入数据到文件、以及处理标准输入输出。以下是对这些概念的详细阐述: 1. **文件和流的...
Java输入输出流(I/O流)是Java编程中不可或缺的一部分,它主要用于程序与外部资源之间的数据传输。在Java中,I/O流的概念被用来抽象各种输入源和输出目标,包括键盘、显示器、文件、网络连接等。I/O流的设计遵循...
这篇C++实验报告主要涉及了C++中的流类库及其在输入输出操作中的应用。流类库是C++标准库的重要组成部分,它提供了一种统一处理输入和输出的方法,包括控制数据格式、转换数据类型以及读写文件等功能。 1. **流的...
Java 输入与输出流是Java编程语言中至关重要的概念,它涉及到数据在程序、文件、网络之间的传输。在Java中,I/O(Input/Output)处理是通过一系列的类和接口来实现的,这些都位于java.io包中。下面将详细阐述Java...
本章节将深入探讨《Java语言程序设计》中关于第6章输入输出流的知识点,结合提供的源代码文件,我们可以看到以下几个关键主题: 1. **基础I/O流**:Java中的I/O流被设计为类层次结构,分为字节流(处理单个字节)和...
9.2 输入输出的格式控制在`ios`类中定义,通过一些枚举常量如`skipws`、`left`、`right`等,程序员可以控制数据的对齐方式、进制转换、是否显示基数等,从而实现对输出格式的精细化调整。例如,`dec`表示以十进制...
Java输入/输出流是Java编程语言中用于处理数据传输的核心机制。它们允许程序与外部资源,如文件、网络连接或设备进行数据交换。输入流(Input Stream)用于从源头读取数据,而输出流(Output Stream)则用于将数据...
在C++中,插入运算符`和提取运算符`>>`是输入输出流的核心操作。插入运算符用于将数据写入输出流,例如`cout !"`将字符串写入控制台。`可以操作各种数据类型,包括基本类型、变量、常量和字符串。而提取运算符`>>`...
【Java输入输出流详解】 Java中的输入/输出流(I/O流)是处理程序与外部交互数据的关键组件。第6章主要围绕Java的I/O流展开,包括输入流、输出流以及文件读写操作。 6.1 输入/输出流 在Java中,I/O流是一个抽象...
在Java编程中,输入/输出流(Input/Output Stream)是处理数据传输的核心部分,无论是从键盘读取用户输入,还是将数据写入文件或网络。Java I/O流体系结构提供了一种统一的方式来处理不同类型的数据流,包括字节流和...
在 Java 中,IO 部分的内容是很庞大的,因为它涉及的领域很广泛,包括标准输入输出、文件的操作、网络上的数据流、字符串流、对象流、zip 文件流等。 在 Java 中,流是一个很形象的概念,当程序需要读取数据的时候...
在Android开发中,字符输入输出流(InputStream和OutputStream)是处理数据传输的关键工具,尤其是在读取和写入文件时。本文将深入探讨Android中的字符串输入输出流,以及如何使用它们来实现对文档的操作。 首先,...
在C++编程中,输入/输出流(Input/Output Stream,简称I/O流)是程序与外部设备(如显示器、键盘、磁盘等)进行数据交互的重要机制。本章主要探讨了C++中的I/O流类库,以及如何利用这些类库进行数据传输。 11.1 流...