《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 安装并启动 ...
随机推荐
- random模块、os模块、序列化模块、sy模块s、subprocess模块
random随机数模块 random.random( ) 随机产生一个0-1之间的小数 print(random.random()) # 0.31595547439342897 random.rand ...
- PostgreSQL常用初级技能树
1.创建表需要id自增 设置serial即可,示例: id serial not null 2.创建表没有设置后面想要再设置自增 给test表设置一个自增序列test_id_seq CREATE SE ...
- vue - 文字3d展示
<template> <div> <p> <span>C</span> <span>S</sp ...
- Codeforces Round #771 (Div. 2), problem: (B) Odd Swap Sort
Problem - B - Codeforces 就是给你个序列, 给他整成升序的, 每次操作可以使相邻两个数交换位置, 交换条件是二数之和为奇数 结果只需输出是否可以整成升序的 思路: 需要奇数偶数 ...
- 软件工程web课程第一次实验作业
开头总结 本次作业使用html+css+js实现了一个简单页面 最终我要记录的是使用js完成了轮播图中图片背景的转换 <script> window.onload = function ( ...
- 技术分享 | SeleniumIDE用例录制
1.录制回放方式的稳定性和可靠性有限 2.只支持 Firefox.Chrome 3.对于复杂的页面逻辑其处理能力有限 环境准备 Chrome 插件:https://chrome.google.com/ ...
- 开发并发布npm包,支持TypeScript提示,rollup构建打包
前言: 工作了几年,想把一些不好找现成的库的常用方法整理一下,发布成npm包,方便使用.也学习一下开发发布流程. 主要用到的工具:npm. 开发库:babel.typescript.rollup.es ...
- MeteoInfo-Java解析与绘图教程(八)_java解析卫星FY-4A一级产品文件(HDF举例)
MeteoInfo-Java解析与绘图教程(八)_java解析卫星一级产品文件(HDF举例) 最近解析卫星数据遇到了一级产品,它的解析方式与之前文章说的有些不同,特此补充一下 卫星的一级产品,里面是没 ...
- 2021春季学期华清大学EE数算OJ3:岩石的重量
原题目如下: 看起来,这不过是我们在<程序设计基础>里面接触过的简单动态规划问题(什么,你不知道什么叫动态规划? 什么是动态规划? 百度百科对"动态规划"一词定义如下: ...
- 李阳:京东零售OLAP平台建设和场景实践
导读: 今天和大家分享京东零售OLAP平台的建设和场景的实践,主要包括四大部分: 管控面建设 优化技巧 典型业务 大促备战 -- 01 管控面建设 1. 管控面介绍 管控面可以提供高可靠高效可持续运维 ...