⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 day13.txt

📁 达内科技上课的 java学习笔记 分为18天学完
💻 TXT
字号:
               CoreJava(day13) 2007-12-20  -- 李艳



什么时候使用线程:

	1、为了提高效率 

	2、遇到并发问题(例QQ)

	3、处理while(true) 连接



什么时候使用同步:有共享数据冲突时要用同步。	



I/O流:

	流的概念:

		       输出流

		程序----------->文件、网络

		程序<-----------数据来源	

		        输入流



	流的分类:



		按处理方式来分:

			字节流:按8位传输

			字符符:按16位传输



		按功能来分:

			节点流:与文件、网络打交道的流,操作数据的来源

			处理流:操作节点流



		如何区分:		

			输入流:以InputStream、Reader结尾的流

			输出流:以OutputStream、Write结尾的流

			

			字节流:以InputStream、OutputStream结尾的流

			字符流:以Reader、Writer结尾的流

			

			节点流:看构造器,参数为数据来源,参数是String或File之类的

			处理流:构造器的参数为其它流



	所有的以InputStream结尾的流都是InputStream的子类:

			

		BufferedInputStream(处理流)

		FileInputStream(文件)		



	所有的以OutputStream结尾的流都是OutputStream的子类:



		BufferedOutputStream, DataOutputStream, FilterOutputStream

	选择流时:

		首先确定是输入还是输出。

		其次确定是字节流还是字符流。

		然后确定是节点流还是处理流。

		

	对某文件一次读一行(课堂代码:ReadLine.java)



		InputStreamReader是字节转字符的桥梁



		所有以Buffered开头的流被称为缓冲流,需要注意的是在关闭BufferedWriter前要先flush一下,因为它有缓冲。



	常用的流:File,Buffered,InputStream之类的。

	

	管道流在JAVA中线程交互的时候使用。(课堂代码:InputThread.java,OutputThread.java)

		输入管道:PipedInputStream 

		输出管道:PipedOutputStream

		输入管道与输出管道的连接:PipedInputStream(PipedOutputStream src)或PipedOutputStream(PipedInputStream sink)

	

	键盘输入:(课堂代码:TestKey.java)



		

	java.util.Properties属性类,针对属性文件操作,早期使用。好处是可以在不修改代码的情况下改变相应的需求。(课堂代码:TestProperty.java)



		文件名以.properties结尾的文件称为属性文件



			文件的内容是:名字=值  的形式

	  常用方法:	

		public void load(InputStream inStream)throws IOException

		public String getProperty(String key)

		public String getProperty(String key,String defaultValue)

		public void store(OutputStream out,String comments)throws IOException

		public Object setProperty(String key,String value)

		public void load(InputStream inStream) throws IOException



	JAVA编码问题:UTF-8,GBK,gb2312是可以显示中文的。  (课堂代码:TestCode.java)



		提供编码帮助的类:java.nio.charset.Charset



			GBK---中、日、韩,gb2312是GBK的子集

	

		什么时候出现中文编码问题:

			1、用流操作文件时

			2、网页(动态、静态)

			3、网络传递信息时



		String--->乱码(再次转码)

			String temp=p.getProperty("name");

			temp=new String(temp.getBytes("ISO8859-1"),"GBK");  这两处的编码有时需要互换位置

		

	File类   (课堂代码:TestFile.java)



		File(String pathname)

			绝对路径:与平台相关

			相对路径:部分跨平台,目录不能变。不敢说100%跨平台。



			boolean createNewFile()  创建文件

			boolean delete()  删除文件

			boolean mkdir()/mkdirs() 创建目录

			boolean renameTo(File destination)  改名

			boolean canRead()/canWrite()  是否可读可写

			boolean exists() 存在与否

			String[] list()  返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。

			long lastModified()  获得最后修改时间

			String getPath()/getAbsolutePath()  获得文件路径

			String getParent()/getName()  取上层文件/取文件名或目录名



	

		文件过滤器:接口--java.io.FilenameFilter

		 

	以追加的方式向文件中写入:(课堂代码:TestRamdon.java)



	Serialization:对象序列化接口,没有方法的接口称为标志接口。

			



			

			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -