标签:code 内存 client cti 编程 java buffer adl 效率
流(对象)是在内存与存储设备之间传输数据的通道
1.方向: a. 输出流:用以将<内存>中的内容写入到<存储设备>当中。 b. 输入流:用以将<存储设备>中的内容读入到<内存>当中。 2. 单位: a. 字节流:以字节为单位,可以读写所有数据。 b. 字符流:以字符为单位,可以读写文本数据。 3. 功能: a. 节点流:实际传输数据。 b. 过滤流:强加节点流功能。
字节转字符流:InputStreamReader 和 OutputStreamWriter
缓冲字符流:PrintWriter 和 BufferedReader
属性:字节流
主要方法:分别为read() 读一个字节 和 read(byte[]) 读一个字节数组
? writer() 写一个字节 和 writer(byte[]) 写一个字节数组
用途:用于字节文件(图像,影音等)的文件传输
代码提示:
//图像复制:
String path="D:"+File.separator +"test.png";
String resultPath="D:"+File.separator +"test1.png";
File file=new File(path);
//File resultfile=new File(path);
FileInputStream fin = null;
FileOutputStream fout = null;
try{
fin =new FileInputStream(file);
fout = new FileOutputStream(resultpath,true);
int result=0;
while((result=fin.read()!=-1){
fout.write(result);
}
}catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
tip:
属性:字符流
主要方法: read() 读一个字符 和read(char[])
? writer() 写一个字符 和writer(char[])
用途:文本文件的传输
代码提示: 如上图
属性:缓冲流 字节流
用途:字节流的用法,但速度更快
代码提示:
属性: 缓冲流 字符流
主要方法:多了一个readLine()和newLine()等
用途:字符流的用途,速度更快
代码提示:
String path = "D:" + File.separator + "test.txt";
String resultpath = "D:" + File.separator + "test1.txt";
BufferedReader br = null;
BufferedWriter bw = null;
char[] a = new char[100];
try {
br = new BufferedReader(new FileReader(path));
bw = new BufferedWriter(new FileWriter(resultPath, true));
// --------------------------第一种
/*br.read(a);
String st = new String(a);
System.out.println(st);
bw.write(st);*/
// -------------更简洁的另一种,但没有中间变量st
int temp = 0;
while ((temp = br.read()) != -1) {
bw.write(temp);
}
// -----------------------
} catch (IOException e) {
e.printStackTrace();
} finally {
CloseIO.charClose(br, bw);//自己写的封装的流的关闭
}
InputStreamReader rd = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(rd);
String readLine = br.readLine();
//-----------------------------第二种
InputStream is = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String rl = br.readLine();
4.网络编程中,Java用的是对象流Socket
标签:code 内存 client cti 编程 java buffer adl 效率
原文地址:https://www.cnblogs.com/bigbeardhk/p/12752597.html