第十三节 I/O流与文件操作

这篇具有很好参考价值的文章主要介绍了第十三节 I/O流与文件操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.字节流

Input Stream输入流,用于从数据源读取数据

Output Stream输出流,用于将数据写入输出目标

读   再加以改进

改进

 2,字符流​编辑


不管哪种语言都必须有文件或设备沟通的能力,java中引入流的概念,数据流向我们程序中

第十三节 I/O流与文件操作

1个字节(byte) == 8个二进制位(bit)

8个二进制位(bit) ,可以用 十进制整数表示 即,1个字节可以用255以内的十进制整数表示

1个字符(char),占的字节与编码有关。英文字符占1个字节;中文字符,在UTF8中占3个字节,在GBK中占2个字节

GBK中文占用2个字节 由2个255内的十进制整数表示

1.字节流

Input Stream输入流,用于从数据源读取数据

第十三节 I/O流与文件操作

第十三节 I/O流与文件操作

Output Stream输出流,用于将数据写入输出目标


package one;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class test111 {
	public static void main(String[] args)
	{
		File file=new File("yu.txt");//这是文件的相对路径,没有根目录一直往下找
		try {//必须处理异常
			InputStream in=new FileInputStream("yu.txt");
			int jg=-1;
			while((jg=in.read())!=-1)
			{
				
				System.out.println(jg);
			}
			in.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}

}

 第十三节 I/O流与文件操作第十三节 I/O流与文件操作


package one;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class test111 {
	public static void main(String[] args)
	{
		File file=new File("yu.txt");//这是文件的相对路径,没有根目录一直往下找
		try {//必须处理异常
			InputStream in=new FileInputStream(file);
			OutputStream out=new FileOutputStream("yunew.txt");
			
			int jg=-1;
			while((jg=in.read())!=-1)
			{
				out.write(jg);
			}
			in.close();
			out.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}

}

读   再加以改进


package one;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class test111 {
	public static void main(String[] args)
	{
		File file=null;
		InputStream in=null;
		OutputStream out=null;
		try {//必须处理异常
			file=new File("yu.txt");//这是文件的相对路径,没有根目录一直往下找
			 in=new FileInputStream(file);//出异常
			 out=new FileOutputStream("yunew.txt");
			
			int jg=-1;
			while((jg=in.read())!=-1)
			{
				out.write(jg);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		finally {
			try {
				if(in!=null)
				in.close();//空执行close报空指针异常呀
				if(out!=null)
				out.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	}

}

改进

第十三节 I/O流与文件操作

 2,字符流


package one;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class test3333 {
	public static void main(String args[]) throws IOException
	{
			Reader r=new FileReader("yu,txt");
			char[] c=new char[4];
			int len=-1;
			
			while((len=r.read(c))!=-1)
			{
				System.out.println(new String(c,0,len));
			}
	}

}

文件读写  输入输出流

文本文件

一个字节一个字节写   8位十进制最大255

int read() throws IOException    字节

java.io.OutputStream     将十进制数按字节

用文件的类 表达文件 1.txt 相对路径 :工程是同级的  绝对路径C盘下 D

万物皆对象  都能封装成对象

字节流 完成读写  以自己的字节

 从文件中去读  1.txt      file      inputstream

直接给出路径 它自动封装成类 读写    

package one;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class T1 {
	public  static void main(String[] args)
	{
		File file1=new File("1.txt");//创建文件  定义输入输出流  管道对接   抓取  有效关闭  close  try   catch
		File file2=new File("1.txt");
		OutputStream out=null;
		InputStream in= null;
		try {
			out=new FileOutputStream(file2);
			in=new FileInputStream(file1);
			int data;
			while((data=in.read())!=-1)
			{
				System.out.println(data);
			}
			byte[] b=new byte[2];
			int gs=0;
			while((gs=in.read(b))!=-1)
			{
				System.out.println(new String(b,0,gs));//字节数组 按字节长度 转换成Stinr类型进行输出
			}//读一个  三替换了 四保留了  默认两个了
			//指定最后转换字节的个数  完成字符串的拼接    注意  转换 记住有个数问题  个数表述你转换是否完全
			while((gs=in.read(b))!=-1)
			{
				out.write(b,0,gs);
			}//利用读写  字节 字节流
		}//读字节和字节数组
		catch(Exception e)
		{
			System.out.println(e);
		}
		finally
		{
			try
			{
				if(in!=null)
					in.close();
				if(out!=null)
					out.close();
			}
			catch(Exception e)
			{
				System.out.println(e);
			}
			
		}//注意关闭  还有要定义公有变量
	}

}

麻烦  关闭时------字节流 自动关闭

第十三节 I/O流与文件操作

 字符流  两个类  以字符的方式进行读写的

字节换成字符  无非就是两个两个字节去读

流的定义 支持close自动关闭

Bufferread 加工流  readLine一行相当于一块  有能力一行一行读  基本流加工

通常 用字符流文章来源地址https://www.toymoban.com/news/detail-420641.html

到了这里,关于第十三节 I/O流与文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构第十三弹---链式二叉树基本操作(上)

    实现一个数据结构少不了数据的定义,所以第一步需要定义二叉树的机构。 初次学习链式二叉树,对于创建一个二叉树较难理解,所以先手动创建二叉树,学习一些操作之后再来通过函数实现链式二叉树。 前序遍历,又称先根遍历。 遍历顺序:根,左子树,右子树。 代码实

    2024年02月02日
    浏览(41)
  • 操作系统原理 —— 文件的逻辑结构(二十三)

    这里说的 逻辑结构 ,就是指在用户看来,文件内部的数据应该是如何组织起来的,而 物理结构 指的是在操作系统看来,文件的数据是如何被存放的。 从 逻辑结构 结构来看,我们可以打开一个记事本,里面的文字内容从用户的角度来看就是无结构的,但是又从 Excel 来看,

    2024年02月08日
    浏览(62)
  • 学C的第三十三天【C语言文件操作】

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 学C的第三十二天【动态内存管理】_高高的胖子的博客-CSDN博客  =====================================

    2024年02月13日
    浏览(38)
  • c++学习第十一讲---文件操作

    c++中对文件操作需要包含头文件 fstream  文本文件:以ASCII码形式储存 二进制文件:以二进制文件储存(读不懂) 操作文件三大类: 读:ifstream ; 写:ofstream ; 读写:fstream 1.写文件: 步骤: (1)包含头文件:#include fstream (2)创建流对象:ofstream ofs; (3)打开文件:ofs.op

    2024年01月24日
    浏览(35)
  • flink学习之广播流与合流操作demo

    广播流是什么? 将一条数据广播到所有的节点。使用 dataStream.broadCast() 广播流使用场景? 一般用于动态加载配置项。比如lol,每天不断有人再投诉举报,客服根本忙不过来,腾讯内部做了一个判断,只有vip3以上的客户的投诉才会有人工一对一回复,过了一段时间大家都发现

    2024年02月09日
    浏览(34)
  • Linux 命令操作(一)——文件和目录操作

    目录信息 参考链接 Linux常用操作命令大全 1.1、创建文件夹 1.1.1、创建目录 1.1.2、创建文件 touch命令操作 1.2、删除文件夹/文件 1.2.1、删除目录操作 1.2.2、删除文件 1.3、重命名目录或者文件名称 1.4、目录切换 1.5、目录以及文件列表查看 1.6、复制目录或者文件 -r 递归处理,将

    2024年02月03日
    浏览(45)
  • Linux 目录和文件常见操作

    就常见的命令: pwd pwd 显示当前的目录 我以如下的目录大致结构做一个简单的例子 cd 迁移到指定的路径,可以指定相对路径和绝对路径,默认相对 .指向当前路径,…/ 指向上一级的目录。 ls 列出文件及其目录 命令选项: -F 区分文件和目录,目录后面会加上/ -a 显示隐藏文

    2024年02月13日
    浏览(36)
  • 文件目录操作——Linux命令核心

    目录 相对路径和绝对路径  查看和切换工作目录 pwd 显示当前工作目录的绝对路径 cd 切换目录 列出目录内容 ls 列出目录的内容 创建和删除目录文件夹 mkdir创建一个新目录 rmdir 删除一个空的目录 touch 创建空文件 cp复制文件或者目录 rm 删除文件或目录  mv移动文件与目录或重

    2024年02月01日
    浏览(40)
  • 【100天精通python】Day20:文件及目录操作_os模块和os.psth模块, 文件路径拼接,目录操作

    目录 专栏导读  1 文件的目录操作  os模块的一些操作目录函数​编辑

    2024年02月14日
    浏览(49)
  • 【100天精通python】Day19:文件及目录操作_基本文件操作

    目录 专栏导读  1 文件的创建打开和关闭 2.1 使用内置函数open(),close()创建打开和关闭

    2024年02月14日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包