stream)
不包含边界数据的连续流
Java里字符由两个字节组成.字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。
本来看有人给你回答了也就不写了,但是发现问题就在于你是需要字节流,那人回答使用的是字符流。import java.io.File
import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
public class WordsCount {
public static void main(String[] args) {
File fRead = new File("D:\\test.txt")
File fWrite = new File("D:\\count.txt")
try {
FileInputStream fis = new FileInputStream(fRead)
FileOutputStream fos = new FileOutputStream(fWrite)
int ch
int count = 0
while((ch = fis.read()) != -1) {
if((char)ch == 'a') {
count++
}
}
//如果直接将count直接写入就会出现问题,例如:a的字符是7个,写入后就是ascii 7 ,打开就是乱码,所以下面需要处理
String temp = "" + count
byte[] b = temp.getBytes()
fos.write(b)
fis.close()
fos.close()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)