《Java基础——IO流》
Java基础——IO流
一、字节流;
1.输入流 (InputStream)
规则:
- 此处用于读取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)
规则:
- 此处用于将具体文本输出到txt文件中。
- 若该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)
规则:
- 此处用于读取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)
规则:
- 此处用于将具体文本输出到txt文件中。
- 若该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.字符流读写文件
规则:
read(char j[])方法:读写将字符流中的数据读入到字符数组中,如果读取到文件末尾则返回-1,否则返回读取到的长度。(通过循环读写时会接着上次读写的位置)write(char j[],int s,int len)方法:将字符数组按照偏移量写入到字符流中,偏移量为(len-s)。- 只能复制字符文件如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.字节流读写文件
规则:
- 几乎可以复制所有文件,但比字符流慢。
代码:
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流》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- C++ functional库中的仿函数
一.仿函数简介 仿函数(functor)又称之为函数对象(function object),实际上就是 重载了()操作符 的 struct或class. 由于重载了()操作符,所以使用他的时候就像在调 ...
- String类 的基本用法
1.String 对象的创建 String对象的创建有两种方式. 第1 种方式就是我们最常见的创建字符串的方式: String str1 = "Hello, 慕课网"; 第 2 种 ...
- js中的undefined
undefined,一个特殊值,通常用于指示变量尚未赋值,是一个JavaScript的 原始数据类型 . 如果后台返回前台数据为空(无数据),那么用该对象获取其中的属性会显示undefined. 如果 ...
- QT的MYSQL驱动库编译
QT的MYSQL驱动库编译 需要准备QT的源码Src,此次编译64位 在QTCreator中打开mysql.pro 修改两个pro 文件,下图为改好 1.mysql.pro TARGET = qsql ...
- 7-19(排序) 寻找大富翁 (25 分)(归并排序)(C语言实现)
7-19(排序) 寻找大富翁 (25 分) 胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人.假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁. 输入格式 ...
- pytest进阶使用【fixture(一)fixture与setup/teardown区别】
fixture翻译为装置. 我觉得名字是很贴合功能的,可以自由给函数装置上自己想要的功能. 当在说pytest比unitest灵活时,fixture肯定是其中的一个理由. 测试数据的准备和执行以后的数 ...
- Educational Codeforces Round 108 (Div. 2), C map套vector存储
地址 Problem - C - Codeforces 题目 题意 一个学校有n个人参加比赛,他们分别属于ui队,每个人的能力值为si 当每个队需要1~n个人的时候,这个学校能参加的人的能力值和最大 ...
- 数仓建设 | ODS、DWD、DWM等理论实战(好文收藏)
本文目录: 一.数据流向 二.应用示例 三.何为数仓DW 四.为何要分层 五.数据分层 六.数据集市 七.问题总结 导读 数仓在建设过程中,对数据的组织管理上,不仅要根据业务进行纵向的主题域划分,还需 ...
- 介绍关于MSSQL当前行中获取到上一行某列值的函数 Coalesce
记录一个小知识点,在SQLGrid中,在当前行显示上一行某列值的函数** Coalesce **的使用. 显示上一行是有啥子用? 经常有人百度SQL上一行减下一行的写法,但是没几个文章是用最简单直接的 ...
- CentOS8 AnolisOS8 yum安装 No match for argument: htop Error: Unable to find a match: htop
这里写自定义目录标题 CentOS8 AnolisOS8 yum安装失败 安装失败原因 阿里云官方镜像主页 正确的操作步骤 学习交流 My Blog 技术交流 CentOS8 AnolisOS8 yu ...