首页 > 编程语言 >Java的流

Java的流

时间:2023-11-07 20:22:35浏览次数:33  
标签:fis Java fos IOException io FileInputStream java

一、数据流概念
1.输入输出的概念​
输入输出技术用于处理设备之间的数据传输,指的是程序和外部设备或者其他计算机进行数据交换的过程,比如读/写文件、网络通信等。将外部数据读取到内存中称为输入,将内存数据输出到磁盘、光盘中称为输出。

2.流的概念
Java程序中,对于数据的输出输入操作以“流”的方式进行。java.io包下提供了各种“流”类接口,用于获取不同种类的数据,并通过标准的方法输入或输出数据。

3.流的操作
import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamTest {
public static void main(String[] args) {
// 确定源
String path = "hello.txt";
FileInputStream fis = null;

try {
// 打开流
fis = new FileInputStream(path);
// 操作流
int res = 0;
while ((res = fis.read()) != -1) {
System.out.println((char) res);// 转换类型为char
}

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 关闭流
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
3.常用的流分类

InputStream和Reader是所有输入流的基类,OutputStream和Writer是所有输出六的基类。InputStream和OutputStream是字节流的抽象父类,以字节为单位进行I/O操作,Reader和Writer是字符流的抽象父类,以字符为单位进行I/O操作。

三、文件输入输出流
1.FileReader和FileWriter
FileReader和FileWriter分别继承自Reader和Writer,以字符为的那位广泛用于文件操作的节点流。FileReader类用于从文本读数据,每次度一个字符或者一个字符数组;FileWriter类用于从文本文件写数据,每次写入一个字符、一个数组或者一个字符串。

2.FileInputStream和FileOutStream
FileInputStream和FileOutStream分别继承自InputStream和FileOutStream,以字节为单位广泛用于文件操作的节点流。FileInputStream类用于从文件读取数据,FileOutStream类用于将数据写入文件

四、复制文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Copy {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 打开流
fis = new FileInputStream("hello.txt");//路径
fos = new FileOutputStream("hello1.txt");
byte[] bytes = new byte[10];
// 操作流
while (fis.read(bytes) != -1) {
fos.write(bytes);
fos.flush();
}
System.out.println("复制完成!");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != fos)
// 关闭流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (null != fis)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

标签:fis,Java,fos,IOException,io,FileInputStream,java
From: https://www.cnblogs.com/1011-zslnb/p/17815846.html

相关文章

  • Java面向对象(三)
    方法的重写方法的重写与之前所学中方法的重载好像名字的相似,但是两者之间可以说毫不相干。方法的重写是当父类中的方法已经没办法满足子类的需求时。子类就需要将方法进行重写。方法重写的要求父类的方法并不是所有的方法都可以被重写,重写也是需要遵守一定的规则:①重写的方法......
  • java代码中拼接的长字符有么又快速去掉+好的方法?
    在Java中,拼接长字符时使用+运算符会导致性能下降,因为每次拼接都会创建一个新的字符串对象。为了提高性能,可以使用StringBuilder或StringBuffer类来代替+运算符。这两个类都提供了操作字符串的方法,并且在拼接长字符时效率更高,因为它们是可变的。示例代码如下:StringBuilder......
  • 安卓程序和java程序的区别,举个详细的例子
    安卓程序(AndroidApp)和普通的Java程序都使用Java语言编写,但它们的开发、运行环境和目标平台有很大的不同。以下是一些关键的区别:开发环境和工具:安卓程序:使用AndroidStudio作为主要的开发环境,它提供了专门为Android开发设计的工具和插件。这些工具包括模拟器、界面设计工具、性......
  • 安卓程序和java程序的区别,我们用生活中的方式给你比喻
    想象一下,你有两个厨师(程序员),他们都擅长使用相同的食材(Java语言)。但是,他们工作在不同的餐厅(平台)并且制作不同种类的菜肴(程序)。安卓厨师(Android程序员):这位厨师在一家专门提供外卖的快餐店工作(Android设备)。他使用的是快餐店提供的特殊厨具(AndroidStudio和SDK),并遵循快餐店的食谱(A......
  • ArcGIS API for JavaScript入门
    arcgis官网:https://arcgis.fenxianglu.cn/docs/load.html一、集成到应用----@arcgis/core方式1、引入ArcGISAPIforJavaScriptyarnadd@arcgis/core或者指定安装版本yarnadd@arcgis/[email protected]如果提示:'yarn'不是内部或外部命令,也不是可运行的程序或批处理文件......
  • JavaScript-Text节点
    Text节点的概念文本节点(Text)代表元素节点(Element)和属性节点(Attribute)的文本内容。如果一个节点只包含一段文本,那么它就有一个文本子节点,代表该节点的文本内容。通常我们使用父节点的firstChild、nextSibling等属性获取文本节点,或者使用Document节点的createTextNode方法创造一个文......
  • JavaScript了解
    JavaScript简介JavaScript是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。JavaScript是用来控制网页行为的,它能使网页可交互那么它可以做......
  • Day02-Java开发所需的前端技术
    HTML常见元素1.文本元素Heading:不同字号标题,从1-6,数字越大字号越小。<!--标题元素--><h1>1号标题</h1><h2>2号标题</h2><h3>3号标题</h3><h4>4号标题</h4><h5>5号标题</h5><h6>6号标题</h6>Paragrap......
  • 一个java文件的JVM之旅 | 京东物流技术团队
    准备我是小C同学编写得一个java文件,如何实现我的功能呢?需要去JVM(JavaVirtualMachine)这个地方旅行。变身我高高兴兴的来到JVM,想要开始JVM之旅,它确说:“现在的我还不能进去,需要做一次转换,生成class文件才行”。为什么这样呢?JVM不能直接加载java文件的原因:Java源代码中包含了许多......
  • Java智慧工地管理平台可视化大数据建造工地APP源码
    一、智慧工地概述智慧工地将更多人工智能、传感技术、虚拟现实等高科技技术融入到建筑、机械、人员穿戴设施、场地进出关口等各类物体中,围绕人、机、料、法、环等各方面关键因素,彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式,智慧工地主要以物联网、移......