第三题
static String loadStream(InputStream in ) throws IOException {
BufferedReader bufReader = new BufferedReader(new InputStreamReader(in ));
String str = "" , buf;
while ((buf = bufReader.readLine()) != null ){
str += buf;
}
in .close();
return str;
}
第四题
static String toUppercase(String sour) throws IOException {
byte [] buf = sour.getBytes();
InputStream in = new ByteArrayInputStream(buf);
OutputStream out = new ByteArrayOutputStream();
int n = 0 ;
while ((n = in .read()) != -1 ) {
if (n >= 'a' && n <= 'z' )
n -= 32 ;
out .write(n);
}
return out .toString();
}
第五题
public static String loadFile (String fileName) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
String out = "" , buf;
while ((buf = in .readLine()) != null ){
out += buf + "\n" ;
}
in .close();
return out ;
}
第六题
public static boolean saveFile (String fileName, String contents) {
boolean saved = false ;
try {
BufferedWriter os = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName)));
os.write(contents);
os.close();
saved = true ;
} catch (IOException e) {
e.printStackTrace();
}
return saved;
}
第七题
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
class MyServer {
ServerSocket server = null ;
Socket socket = null ;
public MyServer() {
try {
server = new ServerSocket(4700 );
socket = server.accept();
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean saveData(String fileName) {
boolean saved = false ;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName)));
String buf;
while ((buf = in .readLine()) != null ) {
out.write(buf);
out.newLine();
}
out.flush();
in .close();
out.close();
saved = true ;
} catch (IOException e) {
e.printStackTrace();
}
return saved;
}
protected void finalize() throws Throwable {
super .finalize();
socket.close();
server.close();
}
}
public class Q_7 {
public static void main(String[] args) {
new MyServer().saveData("test.txt" );
}
}
测试客户端
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class TalkClient {
public static void main (String[] args) {
Socket socket = null ;
try {
socket = new Socket("127.0.0.1" , 4700 );
} catch (IOException e) {
System.out .println("can't not listen to " + e);
}
try {
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out .write("Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n" );
out .flush();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第八题
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Q_8 {
private static boolean fileMatch (String pattern, String fileName) {
int fileNameIndex = 0 ;
int fileNameLength = fileName.length();
for (int patternIndex = 0 ; patternIndex < pattern.length(); ++patternIndex) {
char ch = pattern.charAt(patternIndex);
if (ch == '*' ) {
while (fileNameIndex < fileNameLength) {
if (fileMatch(pattern.substring(patternIndex + 1 ), fileName.substring(fileNameIndex)))
return true ;
++fileNameIndex;
}
}else if (ch == '?' ) {
for (int i = 0 ; i < 2 ; ++i) {
if (fileNameIndex < fileNameLength) {
if (fileMatch(pattern.substring(patternIndex + 1 ), fileName.substring(fileNameIndex)))
return true ;
}
++fileNameIndex;
}
}else {
if (fileNameIndex >= fileNameLength || ch != fileName.charAt(fileNameIndex))
return false ;
++fileNameIndex;
}
}
return (fileNameIndex == fileNameLength);
}
public static void findFile (String path, String fileName, List<File> fileList) {
File dir = new File(path);
if (!dir.exists() || !dir.isDirectory())
System.out .println("not find " + fileName);
File tempFile;
String tempName;
File[] files = dir.listFiles();
for (int i = 0 ; i < files.length; ++i) {
tempFile = files[i];
if (tempFile.isDirectory()) {
findFile(tempFile.getAbsolutePath(), fileName, fileList);
}else if (tempFile.isFile()) {
tempName = tempFile.getName();
if (fileMatch(fileName, tempName))
fileList.add(tempFile.getAbsoluteFile());
}
}
if (fileList.isEmpty()) {
System.out .println("not find " + fileName);
}
}
public static void main (String[] args) {
String path = "D:/test/" ;
String fileName = "t?est*.txt" ;
List<File> fileList = new ArrayList<>();
findFile(path, fileName, fileList);
if (!fileList.isEmpty()) {
for (File file : fileList)
System.out .println(file.getAbsolutePath());
}
}
}
十五章第六题
服务端
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Ch15Q_6_server {
private ServerSocket server;
private Socket socket;
public Ch15Q_6_server () {
try {
server = new ServerSocket(4700 );
socket = server.accept();
} catch (IOException e) {
e.printStackTrace();
}
}
public void accept () {
try {
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
User u2 = (User) in.readObject();
System.out.println(u2.getName() + " " + u2.getPassword());
in.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
protected void finalize () throws Throwable {
super .finalize();
socket.close();
server.close();
}
public static void main (String[] args) {
new Ch15Q_6_server().accept();
}
}
客户端
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Ch15Q_6_client {
private Socket socket = null ;
public Ch15Q_6_client () {
try {
socket = new Socket("127.0.0.1" , 4700 );
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void send () {
try {
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
User u1 = new User();
u1.setName("zouxiaoqiang" );
u1.setPassword("1234" );
out.writeObject(u1);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
protected void finalize () throws Throwable {
super .finalize();
socket.close();
}
public static void main (String[] args) {
new Ch15Q_6_client().send();
}
}