package FileAccess;
import java.io.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
/**
* Title:
* Description: 这是对文本文件的读写操作的Bean
* Copyright: Copyright (c) 2001 2001/11/24
* Company: 海南在线技术部
* @author 程式猎人
* @version 1.0
*/
public class FileAccess
{
private String fileName,errorMessage;
private int columns,rowCount;
/* TextFileReader 的结构函数 */
public FileAccess()
{
reset();
}
public void reset()
{
fileName=new String("");
errorMessage=new String("");
columns=0;
rowCount=0;
}
public void setErrorMessage(String errorMessage)
{
this.errorMessage=errorMessage;
}
public String getErrorMessage()
{
return errorMessage;
}
public String getFileName()
{
return fileName;
}
public int getRows()
{
return rowCount;
}
public int getColumns()
{
return columns;
}
/*
将文件内容返回到一个字符串里去
如果有错误返回 null
*/
public String getContent()
{
String content="";
File file=new File(fileName);
if(!file.exists())
{
setErrorMessage("Error: The file '"+fileName+"' does not exists.");
return content;
}
else if(file!=null)
{
try
{
BufferedReader reader=new BufferedReader(new FileReader(file));
String inLine=reader.readLine();
while(inLine !=null)
{
if(inLine.length()+1>columns)
columns=inLine.length()+1;
content+=(inLine+System.getProperty("line.separator"));
inLine=reader.readLine();
rowCount++;
}
return content;
}
catch(IOException e)
{
setErrorMessage("Error reading the file: "+e.getMessage());
return content;
}
}
else
{
setErrorMessage("UnKnown Error!");
return content;
}
}
/* TextFileWriter 部分开始 */
public void setFileName(String fileName)
{
this.fileName=fileName;
}
/*
对文件写入新的内容writemod的方式有2种
a:如果文件存在,新的内容追加到文件。否则创建一个新文件
o: 如果文件存在,覆盖旧文件的内容。否则创建一个新文件
writer: 王海波 2001/11/30
*/
public boolean Write(String strInputContent,char writemod)
{
try
{
File fso=new File(fileName);
String strContent=new String("");
BufferedWriter writer=new BufferedWriter(new FileWriter(fso));
switch (writemod)
{
case 'a': //最加新的内容到文件
FileAccess objFRead=new FileAccess();
String oldContent=new String("");
objFRead.setFileName(fileName);
oldContent=objFRead.getContent();
strContent=oldContent+strInputContent;
break;
case 'o': //新内容覆盖旧文件的内容
strContent=strInputContent;
break;
default:
strContent=strInputContent;
break;
}
writer.write(strContent);
writer.close();
return true;
}
catch(IOException e)
{
setErrorMessage("Error writting the file: "+e.getMessage());
return false;
}
}
}
实现Client端功能的ClientApp.java原文件:
import java.net.*;
import java.io.*;
import java.lang.*;
public class ClientApp
{
public static void main(String args[])
{
try
{
//创建通讯并且和主机Rock连接
Socket cSocket=new Socket("192.168.100.188",8018);
//打开这个Socket的输入/输出流
OutputStream os=cSocket.getOutputStream();
DataInputStream is=new DataInputStream(cSocket.getInputStream());
int c;
boolean flag=true;
String responseline;
while(flag)
{
//从标准输入输出接受字符并且写如系统
while((c=System.in.read())!=-1)
{
os.write((byte)c);
if(c=='\n')
{
os.flush();
//将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来
responseline=is.readLine();
System.out.println("Message is:"+responseline);
}
}
}
os.close();
is.close();
cSocket.close();
}
catch(Exception e)
{
System.out.println("Exception :"+ e.getMessage());
}
}
}
实现Server端功能的ServerApp.java原文件:
import java.net.*;
import java.io.*;
public class ServerApp
{
public static void main(String args[])
{
try
{
boolean flag=true;
Socket clientSocket=null;
String inputLine;
int c;
ServerSocket sSocket=new ServerSocket(8018);
System.out.println("Server listen on:"+sSocket.getLocalPort());
while(flag)
{
clientSocket=sSocket.accept();
DataInputStream is= new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
OutputStream os=clientSocket.getOutputStream();
while((inputLine=is.readLine())!=null)
{
//当客户端输入stop的时候服务器程序运行终止!
if(inputLine.equals("stop"))
{
flag=false;
break;
}
else
{
System.out.println(inputLine);
while((c=System.in.read())!=-1)
{
os.write((byte)c);
if(c=='\n')
{
os.flush(); //将信息发送到客户端
break;
}
}
}
}
is.close();
os.close();
clientSocket.close();
}
sSocket.close();
}
catch(Exception e)
{
System.out.println("Exception :"+ e.getMessage());
}
}
}
相关推荐
java文件读写操作大全java文件读写操作大全java文件读写操作大全java文件读写操作大全java文件读写操作大全
Java实现对文件的读写,可设置编码格式
java 随机读写Java类文件 java 随机读写Java类文件 java 随机读写Java类文件
java学习笔记,新手入门,java文件读写的一些例子!
java 文件读写 java 文件读写java 文件读写 java 文件读写java 文件读写 java 文件读写java 文件读写 java 文件读写
完整的java文件读写工具类 包括读取、创建、删除文件, 检查、创建、删除目录
最近在用java的IO包下面的RandomAccessFile类读写中文文件时遇到了乱码问题,解决不了。于是索性自己写个类,可以进行中文文件读写而不乱码。 压缩包里提供了.jar包和源代码。 ************************************...
java文件读写,读取properties配置文件,读取目录及文件
java通过snakeyaml类能非常方便的操作,读写yaml文件。
java文件读写,这是本人总结的java读写文件的一下操作 java文件读写,这是本人总结的java读写文件的一下操作 java文件读写,这是本人总结的java读写文件的一下操作
java中用FileUtil实现文件读写
Java文件读写.pdf
java中常用文件读写的详细例了说明(java中常用的IO)
java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件
通过这个类可以想文件中写,也可以读了!
java实现文件读写操作,小例子,供大家参考
java 二进制文件的读写操作使用FileInputStream FileOutputStream
JAVA简单的读写文本文件的代码JAVA简单的读写文本文件的代码
* 一、BufferedReader类 public class BufferedReader extends Reader * 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下...