📄 ch2.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 + -