Java基础——IO流

一、字节流;


1.输入流 (InputStream)

规则:

  1. 此处用于读取txt文件中的内容。

代码:

import java.io.*;

public class Teacher
{
public static void main(String[] args) throws IOException //抛出异常
{
File file=new File("D:/软件/Desktop/1.txt"); //创建一个File对象指向待读取的txt文件
FileInputStream input=new FileInputStream(file); //定义一个文件输入流
byte m[]=new byte[1024]; //定义一个字节数组
input.read(m); //将输入流的数据读入到字节数组
String n=new String(m, "UTF-8"); //通过“UTF-8”编码表将字节转换成字符
input.close(); //关闭输入流
System.out.println(n);
}
}

2.输出流(OutStream)

规则:

  1. 此处用于将具体文本输出到txt文件中。
  2. 若该txt文件存在则直接输出,若该txt文件不存在则会自动生成。

代码:

import java.io.*;

public class Student
{
public static void main(String[] args) throws IOException //抛出异常
{
File file=new File("D:/软件/Desktop/2.txt"); //创建一个File对象指向待生成的txt文件
FileOutputStream output=new FileOutputStream(file); //定义一个文件输出流
String str="Hello World!";
byte m[]=str.getBytes(); //将字符转换成字节
output.write(m); //将字节写出到文件
output.flush(); //刷新缓冲区数据,即保存操作
output.close(); //关闭输入流
} }

二、字符流;


1.输入流(Reader)

规则:

  1. 此处用于读取txt文件中的内容。

代码:

import java.io.*;

public class Student
{
public static void main(String[] args) throws IOException
{
String file="D:/软件/Desktop/1.txt"; //效果同上
FileReader reader=new FileReader(file);
char m[]=new char[1024];
reader.read(m);
reader.close();
System.out.println(m);
}
}

2.输出流(Writer)

规则:

  1. 此处用于将具体文本输出到txt文件中。
  2. 若该txt文件存在则直接输出,若该txt文件不存在则会自动生成。

代码:

import java.io.*;

public class Teacher
{
public static void main(String[] args) throws IOException
{
String file="D:/软件/Desktop/2.txt";
FileWriter writer=new FileWriter(file);
writer.write("Hello World!");
writer.flush();
writer.close();
}
}

三、复制文件;


1.字符流读写文件

规则:

  1. read(char j[]) 方法:读写将字符流中的数据读入到字符数组中,如果读取到文件末尾则返回-1,否则返回读取到的长度。(通过循环读写时会接着上次读写的位置)
  2. write(char j[],int s,int len) 方法:将字符数组按照偏移量写入到字符流中,偏移量为(len-s)。
  3. 只能复制字符文件如txt文件

代码:

import java.io.*;

public class Read
{
public static void main(String[] args) throws IOException
{
String m="D:/软件/Desktop/1.txt";
String n="D:/软件/Desktop/2.txt";
FileReader reader=new FileReader(m);
FileWriter writer=new FileWriter(n);
int len=0;
char j[]=new char[1024];
while((len=reader.read(j))!=-1) //每次读写1k,每次判断循环条件都会继续读写
{
writer.write(j,0,len);
}
reader.close();
writer.close();
} }

2.字节流读写文件

规则:

  1. 几乎可以复制所有文件,但比字符流慢。

代码:

import java.io.*;

public class Write
{
public static void main(String[] args) throws IOException
{
String m="D:/软件/Desktop/1.jpg";
String n="D:/软件/Desktop/2.jpg";
FileInputStream input=new FileInputStream(m);
FileOutputStream output=new FileOutputStream(n);
int len=0;
byte j[]=new byte[1024];
while((len=input.read(j))!=-1)
{
output.write(j,0,len);
}
input.close();
output.close();
}
}

《Java基础——IO流》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. 直接远程下载或上传文件到linux系统中的简单办法

    如果执行sz 或者rz 没有这个命令,则安装lrzsz包执行:yum install lrzsz 等待安装完毕,然后一直输入Y即可. sz:将选定的文件发送(send)到本地机器 -a 以文本方式传输 ...

  2. 关于Swagger优化

    背景 尽管.net6已经发布很久了,但是公司的项目由于种种原因依旧基于.net Framework.伴随着版本迭代,后端的api接口不断增多,每次在联调的时候,前端开发叫苦不迭:"小胖,你们 ...

  3. Persistent Bits - 题解【二进制】

    题面: WhatNext Software creates sequence generators that they hope will produce fairly random sequence ...

  4. 想要白嫖ppt?记住这几个网站就够了

    良心ppt,超赞! [PPT]:OfficePlushttps://www.officeplus.cn/Template/Home.shtml稻壳Docerhttps://www.docer.com/ ...

  5. 玩转LiteOS组件:玩转Librws

    摘要:Librws是一个跨平台的websocket客户端,使用C语言编写. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922 . 本期小编为大家带来Lite ...

  6. -5.C++读入一行字符串

    -5.C++读入一行字符串 cin.getline(char * str, int size_t, char delim) 头文件: #include<iostream> 参数1:字符数组 ...

  7. [AcWing 801] 二进制中1的个数

    点击查看代码 #include<iostream> using namespace std; int lowbit(int x) { return x & -x; } int ma ...

  8. 基于mybatis的java代码生成存储过程

    问题: 项目中目前使用mybatis操作数据库,使用插件(mybatis-generator)自动生成代码,对于增改查,使用存储过程实现了一版本,方便使用. insert代码生成器用法: insert ...

  9. centos 7.0 下安装FFmpeg软件 过程

    这几天由于需要编写一个语音识别功能,用到了百度语音识别接口,从web端或小程序端传上来的音频文件是aac或者mp3或者wav格式的,需要使用FFmpeg进行格式转换,以符合百度api的要求. 安装FF ...

  10. C#中的接口和类有什么异同

    不同点: 1. 不能直接实例化接口 2. 接口中的成员不能用访问修饰符修饰(默认public) 3. 接口不包含方法的实现 4. 接口可以多继承,类只能单继承. 5. 类定义可在不同的源文件之间进行拆 ...