《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 安装并启动 ...
随机推荐
- VScode链接服务器并配置公钥-SSH Keys
VScode链接服务器并配置公钥-SSH Keys 一直在用Xshell做SSH连接服务器与虚拟机,但是中文乱码的问题一直找不到解决方案,干脆使用编辑器自带的插件,集成之后用起来也方便 1.概述 做法 ...
- gin框架使用【3.路由参数】
GET url: http://127.0.0.1:8080/users/{id} http://127.0.0.1:8080/users/1 对于id值的获取 package main impo ...
- 《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
1.简介 上一篇宏哥介绍是如何使用logback将日志输出到控制台中,但是如果需要发给相关人需要你拷贝出来,有时候由于控制台窗口的限制,有部分日志将会无法查看,因此我们还是需要将日志输出到文件中,因此 ...
- [AcWing 2816] 判断子序列
点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int a[N], b[N]; int mai ...
- Java多线程——实现
"java多线程的实现--几乎都要和java.lang.Thread打交道" 方式一:继承于Thread类 1.创建一个继承于Thread类的子类 2.重写Thread类的run( ...
- 详解Kubernetes存储体系
Volume.PV.PVC.StorageClass由来 先思考一个问题,为什么会引入Volume这样一个概念? " 答案很简单,为了实现数据持久化,数据的生命周期不随着容器的消亡而消亡. ...
- 如何基于 ZEGO SDK 实现 Android 通话质量监测
功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 参考 下载示例源码 获取源码. 相关源码请查看 &qu ...
- 不要使用Java Executors 提供的默认线程池
线程池构造方法 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUni ...
- python常用内置函数和关键字
常用内置方法 在Python中有许许多多的内置方法,就是一些Python内置的函数,它们是我们日常中经常可以使用的到的一些基础的工具,可以方便我们的工作. 查看所有的内置类和内置方法 # 方法一 bu ...
- vue中blob文件下载及其它下载方式
一.Blob对象的了解 1:blob表示一个不可变.原始数据的类文件对象.Blob()构造函数返回一个新的blob对象:blob对象的内容由参数给出的值串联组成: 2:new Blob(array, ...