ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java笔记 字节输入流读取文件中的字符

2022-03-19 13:04:26  阅读:148  来源: 互联网

标签:Java 字节 printStackTrace IOException FileInputStream catch input null 读取


1.构造输入流,读取一个字节

read();从输入流中读取数据的下一个字节,返回的是一个int类型的值

 

public void testFileInputStream() {
FileInputStream input =null;
try {
input = new FileInputStream("Test/demo02.txt");
int a = input.read();
System.out.println((char)a);
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(input!=null)
input.close();//关闭输入流,释放资源
} catch (IOException e) {
e.printStackTrace();
}
}
}

 

2.使用输入流循环读取文件中所有字符

(1)一个字节一个字节读取

 

public void testFileInputStream() {
FileInputStream input =null;
try {
input = new FileInputStream("Test/demo02.txt");
int a =-1;
while( (a = input.read())>-1 ) {//read()方法读取到文件末尾会返回-1
System.out.print((char)a);//将int类型强制转换为char类型
}//中文不止占有一个字节
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(input!=null)
input.close();//关闭输入流,释放资源
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

 

(2)按字节数组读取read(byte[] b);

法一

public void testFileInputStream() {
FileInputStream input =null;
try {
input = new FileInputStream("Test/demo02.txt");
byte[] data = new byte[4];
int length = -1;
while( (length = input.read(data))>-1 ) {

for(int i=0;i<length;i++) {
System.out.print((char)data[i]);
}
}
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(input!=null)
input.close();//关闭输入流,释放资源
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

法二

public void testFileInputStream() {
FileInputStream input =null;
try {
input = new FileInputStream("Test/demo02.txt");
byte[] data = new byte[4];
int length = -1;
while( (length = input.read(data))>-1 ) {
String str = new String(data,0,length);
System.out.print(str);
}
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(input!=null)
input.close();//关闭输入流,释放资源
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

标签:Java,字节,printStackTrace,IOException,FileInputStream,catch,input,null,读取
来源: https://www.cnblogs.com/zct1114/p/16025985.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有