总结:
1.知识点:二进制文件与文本文件的区别:如果一个文件专用于存储文本字符而不包含字符之外的数
据称为文本文件,除此之外的文件都叫二进制文件。
2.FileOutputStream类和FileInputStream,FileWriter类和FileReader类的学习
import java.io.*;
public class FileStream {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
FileOutputStream out=new FileOutputStream("hello.txt");
out.write("www.abc.com中国".getBytes());
//write(byte[] b)方法会调用flush()方法来强制清空缓存
//而write(int byte)不会自动调用该方法
out.close();
byte[] buf=new byte[1024];
FileInputStream in=new FileInputStream("hello.txt");
int len=in.read(buf);
System.out.println(new String(buf,0,len));
in.close();
FileWriter out2=new FileWriter("hello2.txt");
out2.write("abc中国");
//write(String str)方法不会自动调用flush()方法因此如果没有close()不会创
建文件
out2.close();
char[] ch=new char[1024];
FileReader fr=new FileReader("hello2.txt");
int len2=fr.read(ch);
System.out.println(new String(ch,0,len2));
out2.close();
}
}
3.PipedOutputStream类和PipedInputStream类、PipedWriter类和PipedReader类
PipedWriter类和PipedReader类能直接对字符进行写读,相对于对字节的读取效率更高。两
组类都涉及到对线程的操作,只有在两个线程之间建立连接之后才能实现两线程的数据交互
。
4.知识点:线程与进程的区别?
进程:进程就是程序的分段执行。首先,程序蓝本中的一段语句被复制到任务队列中,其次
,在执行需要的系统资源被配备齐全后由CPU调用执行。最后,当这段语句所需要实现的功能
被完成之后,就被清除出任务队列。
线程:线程是具有独立功能,比进程更小的执行单位。一个进程可以分成多个线程,每个线
程都可以独立执行,从而形成多条执行的路径。这多个线程不具有完全专用的系统资源,它
们共享同一进程的系统资源
思考:线程之间可以交互数据、实现通信、协调一致地工作。那么这里所说的线程是同一进
程中的所有线程么?
import java.io.*;
public class PipedStreamTest {
public static void main(String [] agrs) throws Exception{
sender s1=new sender();
//recevier r1=new recevier();
receiverF r1=new receiverF();
PipedOutputStream out=s1.getOutputStream();
PipedReader in=r1.getReader();
out.connect(in);
s1.start();
r1.start();
/*SenderF s1=new SenderF();
receiverF r1=new receiverF();
PipedWriter out=s1.getWriter();
PipedReader in=r1.getReader();
out.connect(in);
s1.start();
r1.start();*/
}
}
在上面程序中提示错误,即s1对象无法和r1对象建立连接,可见不同类型的线程类对象无法
建立连接。