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

📄 ch2.txt

📁 精通Java网络编程代码全部
💻 TXT
字号:
/* 代码2-1
 * Created on 2005-5-14
 */


import java.io.*;
public class Redirect{
public static void main(String args[]) throws IOException {
// 在文件上建立一个PrintStream 
FileOutputStream fos =
new FileOutputStream("out.txt");
BufferedOutputStream bos =
new BufferedOutputStream(fos, 1024);
PrintStream ps =
new PrintStream(bos, false);
// 重定向System.out 到该文件
System.setOut(ps);
// 输出
System.out.println("This is a test\u4321");
int n = 37;
System.out.println("The square of " + n +
" is " + (n * n));
ps.close();
}	} 



/* 代码2-2
 * Created on 2005-5-14
 */



try{
	BufferedReader in2 = new BufferedReader(new StringReader(s2));
	PrintWriter out1=new PrintWriter(new BufferedWriter(new FileWriter("Demo.out")));
	//设置所在的行数
	int lineCount=1;
	while((s = in2.readLine()) != null)
	//打印各行信息
		out1.println(lineCount++ + ";" +s);
	out.close();
}catch(EOFException e){
	System.err.println("End of the stream");
}

PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")));


/* 代码2-3
 * Created on 2005-5-14
 */
FileOutputStream fos = new FileOutputStream("t.tmp");//文件输出流
ObjectOutputStream oos = new ObjectOutputStream(fos);//通过对象序列化的方式传送数据
oos.writeInt(12345);//传送不同的数据类型
oos.writeObject("Today");
oos.writeObject(new Date());
oos.close();


/* 代码2-4
 * Created on 2005-5-14
 */

FileInputStream fis = new FileInputStream("t.tmp");//文件输入流
ObjectInputStream ois = new ObjectInputStream(fis);//通过对象序列化的方式接收数据
int i = ois.readInt();
String today = (String) ois.readObject();
Date date = (Date) ois.readObject();
ois.close();



/* 代码2-5
 * Created on 2005-5-14
 */
InputStreamReader netin =new InputStreamReader(ssocket.getInputStream());
BufferedReader in = new BufferedReader(netin);


/* 代码2-6
 * Created on 2005-5-14
 */
// 检查分隔符是否位于子串之内 
for (int i=1; i<aiIndex.length; i++)>/td> 
{ 
	iIndex = sInput.indexOf(sDelim, iIndex+1); 
	if (iIndex == -1) 
		break; 
	// 如果分隔符位于子串之内,则向前分析直至子串结束
	while (sInput.substring(iIndex-iLen, iIndex).equals(sDelim)) 
	{ 
		iNextIndex = sInput.indexOf(sDelim, iIndex+1); 
		if (iNextIndex == -1) 
			break; 
		iIndex = iNextIndex; 
	} 
	iIndex[i] = iIndex;
	//System.out.println("aiIndex[" + i + "] = " + iIndex); 
	f (isWithinQuotes(iIndex)) 
	{ 
		if (bIncludeDelim) 
			iTokens -= 2; 
		else 
			iTokens -= 1; 
	} 
}



/* 代码2-7
 * Created on 2005-5-14
 */

// 如发现多个连续的分隔符,则返回""作为标记 
if ( (sPrevToken.equals(sDelim)) && (sToken.equals(sDelim)) ) { 
	sPrevToken = sToken; 
	iTokenNo++; 
	return ""; 
} 
// 检查标记本身是否等于分隔符 
if ( (sToken.trim().startsWith("\"")) && (sToken.length() == 1) ) { 
	// 标记本身等于分隔符的特殊情况 
	String sNextToken = oTokenizer.nextToken(); 
	while (!sNextToken 
		sToken += sNextToken; 
	sPrevToken = sToken; 
	iTokenNo++; 
	return sToken.substring(1, sToken.length()-1); 
	) 
		// 检查字符串中是否包含子串 
		else if ( (sToken.trim().startsWith("\"")) 
		&& (!((sToken.trim().endsWith("\"")) 
		&& (!sToken.trim().endsWith("\"\"")))) ) 
	{ 
		if (oTokenizer.hasMoreTokens()) 
		{ 
			String sNextToken = oTokenizer.nextToken(); 
			// 检查"\"\"" 
			while (!((sNextToken.trim().endsWith("\""))
				&& (!sNextToken.trim().endsWith("\"\""))) ) 
			{ 
				sToken += sNextToken; 
				if (!oTokenizer.hasMoreTokens()) 
				{ 
					sNextToken = ""; 
					break; 
				} 
				sNextToken = oTokenizer.nextToken(); 
			} 
			sToken += sNextToken; 
		} 
	}


/* 代码2-8
 * Created on 2005-5-14
 */

import java.io.*;
import java.util.zip.*;
public class GZIPshow {
	// 将异常抛给控制台
	public static void main(String[] args) 
		throws IOException {
		//通过Reader类封装
		BufferedReader in =new BufferedReader(new FileReader(args[0]));
		BufferedOutputStream out 
			=new BufferedOutputStream(new GZIPOutputStream(
			new FileOutputStream("test.gz")));//输出流
		System.out.println("Writing file");//打印信息
		int c;
		while((c = in.read()) != -1)
			out.write(c);
		in.close();//关闭输入流
		out.close();//关闭输出流
		System.out.println("Reading file");
		BufferedReader in2 =new BufferedReader(new InputStreamReader(
			new GZIPInputStream(
            new FileInputStream("test.gz"))));
		String s;
		while((s = in2.readLine()) != null)
			System.out.println(s);
	}	
}


/* 代码2-9
 * Created on 2005-5-14
 */
import java.io.*;
public class IOStream {
	public static void main(String[] args) throws IOException {
		// 逐行读入数据
		BufferedReader in = new 
			BufferedReader( new FileReader("IOStream.java"));
		String source, source1 = new String();
		while((s = in.readLine())!= null);
			source1+= source + "\n";
		in.close();
		// 读入标准输入
		BufferedReader stdin = new BufferedReader(
			new InputStreamReader(System.in));
		System.out.print("Enter a line:");
		System.out.println(stdin.readLine());
		// 从内存中读入数据
		StringReader input2 = new StringReader(source1);
		int c;
		while((c = input2.read()) != -1){
			System.out.print((char)c);
			//从in2中读出的为int型,采用强制类型转换
		}
		//  格式化内存读入
		try {
			DataInputStream input3 = new DataInputStream(
				new ByteArrayInputStream(source1.getBytes()));
			//将String 类封装入Byte数组,再封装入格式化输入中
			while(true)
				System.out.print((char)input3.readByte());
		} catch(EOFException e) {
			System.err.println("End of stream");
		}
		// 文件输出
		try {
			BufferedReader in4 = new BufferedReader( 
				new StringReader(source1));
			PrintWriter out1 = new PrintWriter(
				new BufferedWriter(new FileWriter("IOTest.out")));
			int lineCount = 1;
			while((s = in4.readLine()) != null ){
				out1.println(lineCount++ + ": " + s);
				//按行写入文件中,带上行号
			}
			out1.close();//关闭输出流
		} catch(EOFException e) {
			System.err.println("End of stream");
		}
		// 存储并恢复数据
		try {
			DataOutputStream out2 = new DataOutputStream(
				new BufferedOutputStream(
				new FileOutputStream("Data.txt")));
		//利用DataOutputStream类来封装输出流
			out2.writeDouble(3.14159);
			out2.writeUTF("That was pi");
			out2.writeDouble(1.41413);
			out2.writeUTF("Square root of 2");
			out2.close();
			DataInputStream in5 = new DataInputStream(
				new BufferedInputStream(
				new FileInputStream("Data.txt")));
			// 使用 DataInputStream 来读取数据
			System.out.println(in5.readDouble());
			System.out.println(in5.readUTF());
			//读出double
			System.out.println(in5.readDouble());
			System.out.println(in5.readUTF());
		} catch(EOFException e) {
			throw new RuntimeExce
}


/* 代码2-10
 * Created on 2005-5-14
 */
import java.io.*;
public class Return {
	public static void main(String[] args)
		throws IOException {
		BufferedReader in = new BufferedReader(
			new InputStreamReader(System.in));
		//利用BufferedReader类来封装输入流
		String s;
		while((s = in.readLine()) != null && s.length() != 0)
			System.out.println(s);
	}
}

/* 代码2-11
 * Created on 2005-5-14
 */
import java.io.*;
public class ChanSystemOut {
	public static void main(String[] args) throws IOException {
		PrintWriter out = new PrintWriter(System.out, true);
		out.println("Redirect the standard I/O");
		FileOutputStream fos = new FileOutputStream("out.txt");
		//FileOutputStream类是用来封装文件输出流的
		BufferedOutputStream bos = new BufferedOutputStream(fos, 1024);
		PrintStream ps = new PrintStream(bos, false);
		// 重定向System.out 到该文件
		System.setOut(ps);
	}
}

/* 代码2-12
 * Created on 2005-5-14
 */
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class GetChannel {
	private static final int BSIZE = 1024;
	public static void main(String[] args) throws Exception {
		//写文件
		FileChannel fc =(new FileOutputStream("data.txt")).getChannel();
		fc.write(ByteBuffer.wrap("Some text ".getBytes()));
		fc.close();
		// 添加到文件末尾
		fc =new RandomAccessFile("data.txt", "rw").getChannel();
		fc.position(fc.size()); // 移到末尾
		fc.write(ByteBuffer.wrap("Some more".getBytes()));
		fc.close();
		// 读文件
		fc = new FileInputStream("data.txt").getChannel();
		ByteBuffer buff = ByteBuffer.allocate(BSIZE);
		//分配缓存区
		fc.read(buff);
		//读缓存
		buff.flip();
		while(buff.hasRemaining())
			System.out.print((char)buff.get());    
	}
}

/* 代码2-13
 * Created on 2005-5-14
 */
import java.io.*;
import java.util.*;
import java.util.zip.*;
public class ZipCompress {
	public static void main(String[] args) 
		throws IOException {
		FileOutputStream f =new FileOutputStream("test.zip");
		//读入文件
		CheckedOutputStream csum =
			new CheckedOutputStream(
			f, new Adler32());
		ZipOutputStream out =
			new ZipOutputStream(
			new BufferedOutputStream(csum));
		out.setComment("A test of Java Zipping");
		for(int i = 0; i < args.length; i++) {
			System.out.println(
				"Writing file " + args[i]);
			BufferedReader in =
				new BufferedReader(
				new FileReader(args[i]));
			//利用BufferedReader类来封装文件的读入
			out.putNextEntry(new ZipEntry(args[i]));
			int c;
			while((c = in.read()) != -1)
				out.write(c);
			in.close();
		}
		out.close();
		// 当文件关闭后Checksum 才有效
		System.out.println("Checksum: " +
			csum.getChecksum().getValue());
		// 现在读出文件
		System.out.println("Reading file");
		FileInputStream fi =new FileInputStream("test.zip");
		CheckedInputStream csumi =
			new CheckedInputStream(
			fi, new Adler32());
		ZipInputStream in2 =
			new ZipInputStream(
			new BufferedInputStream(csumi));
		ZipEntry ze;
		while((ze = in2.getNextEntry()) != null) {
			System.out.println("Reading file " + ze);
			int x;
			while((x = in2.read()) != -1)
				System.out.write(x);
		}
		System.out.println("Checksum: " +
			csumi.getChecksum().getValue());
		in2.close();
		// 以另一种方式打开文件
		ZipFile zf = new ZipFile("test.zip");
		Enumeration e = zf.entries();
		while(e.hasMoreElements()) {
			ZipEntry ze2 = (ZipEntry)e.nextElement();
			System.out.println("File: " + ze2);
		}
	}
}

⌨️ 快捷键说明

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