《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流》的更多相关文章
- Java基础IO流(二)字节流小案例
JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...
- Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)
Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...
- Java基础-IO流对象之随机访问文件(RandomAccessFile)
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...
- Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)
Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
- Java基础-IO流对象之打印流(PrintStream与PrintWriter)
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...
- Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...
- java基础-IO流对象之Properties集合
java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...
- Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...
- Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...
随机推荐
- PHP 两个多维数组根据某个键的值进行组合排序的几种思路(二)
几个经过封装的方法: 1.使用 array_multisort() 函数 <?php $arr = [ ['name'=>'dee','age'=>28], ['name'=> ...
- Oracle之内存结构(SGA、PGA)
一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. ...
- 微信Auth2.0授权的时候出现两次回调
在获取用户OpenID的时候 $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".WX_APPID. ...
- maven3.2.3+eclipse4.4+JDK1.8+win8.1_64bit环境搭建
--------------------------------------- 博文作者:迦壹 博客标题:win8.1_64bit+eclipse4.4+maven3.2.3+JDK1.8环境搭建 博 ...
- 线段树(main函数自由)
都是一些裸线段树的模板,无主函数! #include<cstdio> #include<algorithm> #include<cstring> #include& ...
- 协处理器,王明学learn
协处理器 协处理器用于执行特定的处理任务,如:数学协处理器可以控制数字处理,以减轻处理器的负担.ARM可支持多达16个协处理器,其中CP15是最重要的一个. CP15提供16组寄存器 通过提供的16组 ...
- MYSql查詢一段時間記錄
24小时内记录(即86400秒) $sql="SELECT video_id,count(id)as n FROM `rec_down` WHERE UNIX_TIMESTAMP(NOW() ...
- python搭建opencv
说明 windows下:以管理员身份使用cmd或者powershell. 安装 依次输入以下命令,安装numpy, Matplotlib, opencv三个包 pip install --upgrad ...
- 二进制中的个数(JAVA)
二进制中的1的个数 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路:用位运算来进行移1操作.(首先得知道数在计算机中都是以01来放置的) 1,若由一个数11100,当 ...
- 【SpringBoot】SpringBoot2.0响应式编程
========================15.高级篇幅之SpringBoot2.0响应式编程 ================================ 1.SprinBoot2.x响应 ...