字节流字符流
Posted boss-h
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节流字符流相关的知识,希望对你有一定的参考价值。
字节流
字节输出流OutputStream:
OutputStream此抽象类,是表示输出字节流的所有类的超类
FileOutputStream类:
public static void main(String[] args) throws IOException
//创建字节输出流对象
//构造方法指定文件地址时,如果存在则覆盖,如果不存在则创建。
FileOutputStream fos=new FileOutputStream("D:\\java\\d.txt");
/*//向文件中写入一个字节write(int b) ASCII码
//0-48
//a-97
//A-65
fos.write(49);
fos.write(48);
fos.write(48);*/
//向文件中写入一个字节数组
byte[] bytes=-66,-67,-68,-69;
//fos.write(bytes);
fos.write(bytes, 2, 2);
//释放资源
fos.close();
给文件中续写和换行
public static void main(String[] args) throws IOException
//创建字节输出流
FileOutputStream fos=new FileOutputStream("D:\\java\\d.txt",true);
//字符串-》字符数组
fos.write("abc".getBytes());
fos.write("\r\n换行了".getBytes());
//释放资源
fos.close();
异常的处理
public static void main(String[] args)
FileOutputStream fos=null;
try
fos=new FileOutputStream("D:\\java\\d.txt",true);
fos.write("abc".getBytes());
catch (IOException e)
e.printStackTrace();
finally
try
fos.close();
catch (IOException e)
e.printStackTrace();
字节输入流InputStream
public static void main(String[] args) throws IOException
//创建字节输入流(明确从哪个文件中读取数据)
FileInputStream fis=new FileInputStream("D:\\java\\d.txt");
//一个字节一个字节读取文件所有数据
int len=0;
while((len=fis.read())!=-1)
System.out.println((char)len);
/*System.out.println((char)fis.read());
System.out.println((char)fis.read());
System.out.println((char)fis.read());
System.out.println((char)fis.read());
System.out.println((char)fis.read());
System.out.println(fis.read());*/
//释放资源
fis.close();
public static void main(String[] args) throws IOException
//明确数据源
FileInputStream fis=new FileInputStream("D:\\java\\d.txt");
//创建字节数组
byte[] bytes=new byte[2];
/*//读取一个字节数组
//实际读取的有效字节
System.out.println(fis.read(bytes));
//字节数组转字符串
System.out.println(new String(bytes));*/
int len=0;
while((len=fis.read(bytes))!=-1)
System.out.println(new String(bytes,0,len));
//释放资源
fis.close();
字符流
字符编码表:
ascii
iso-8859-1
GB2312
GBK
GB18030
unicode
UTF-8
常见的编码 GBK UTF-8 ISO-8859-1
文字--->(数字) :编码。 “abc”.getBytes() byte[]
(数字)--->文字 : 解码。 byte[] b=97,98,99 new String(b,0,len)
FileReader类:
public static void main(String[] args) throws IOException
//创建字符输入流
FileReader fr=new FileReader("D:\\java\\d.txt");
int len=0;
while((len=fr.read())!=-1)
System.out.println((char)len);
//释放资源
fr.close();
public static void main(String[] args) throws IOException
//创建字符输入流
FileReader fr=new FileReader("D:\\java\\d.txt");
char[] c=new char[1024];
int len=0;
while((len=fr.read(c))!=-1)
System.out.println(new String(c,0,len));
fr.close();
public static void main(String[] args) throws IOException
//创建字符输出流
FileWriter fw=new FileWriter("D:\\java\\d.txt");
//写入一个字符
fw.write(100);
fw.flush();
//写入一个字符串
fw.write("你好呀");
//写入一个字符数组
char[] c=‘a‘,‘1‘,‘r‘;
fw.write(c);
//释放资源
//fw.close();
public static void main(String[] args) throws IOException
//明确数据源
FileReader fr=new FileReader("D:\\java\\d.txt");
//明确目的地
FileWriter fw=new FileWriter("D:\\java\\z.txt");
int len=0;
//开始复制
Date d=new Date();
System.out.println(d.getTime());
while((len=fr.read())!=-1)
fw.write(len);
fw.flush();
//释放资源
fr.close();
fw.close();
System.out.println(d.getTime());
以上是关于字节流字符流的主要内容,如果未能解决你的问题,请参考以下文章