目录
1.字节流
Input Stream输入流,用于从数据源读取数据
Output Stream输出流,用于将数据写入输出目标
读 再加以改进
改进
2,字符流编辑
不管哪种语言都必须有文件或设备沟通的能力,java中引入流的概念,数据流向我们程序中
1个字节(byte) == 8个二进制位(bit)
8个二进制位(bit) ,可以用 十进制整数表示 即,1个字节可以用255以内的十进制整数表示
1个字符(char),占的字节与编码有关。英文字符占1个字节;中文字符,在UTF8中占3个字节,在GBK中占2个字节
GBK中文占用2个字节 由2个255内的十进制整数表示
1.字节流
Input Stream输入流,用于从数据源读取数据
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();
}
}
}
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();
}
}
}
}
改进
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);
}
}//注意关闭 还有要定义公有变量
}
}
麻烦 关闭时------字节流 自动关闭
字符流 两个类 以字符的方式进行读写的
字节换成字符 无非就是两个两个字节去读
流的定义 支持close自动关闭
Bufferread 加工流 readLine一行相当于一块 有能力一行一行读 基本流加工文章来源:https://www.toymoban.com/news/detail-420641.html
通常 用字符流文章来源地址https://www.toymoban.com/news/detail-420641.html
到了这里,关于第十三节 I/O流与文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!