假定开始没有这个文件,在插入数据时建立文件。
创新互联专业为企业提供定边网站建设、定边做网站、定边网站设计、定边网站制作等企业网站建设、网页设计与制作、定边企业网站模板建站服务,十载定边做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
FILE *fp;
fopen(激法馆盒弋谷龟贪骇楷"c:a.txt","wt+");这个是打开以写或读的方式打开文件。打开后就可以写入了,用for循环,例如你有4组数据,
for(int i;i=4;i++)
{
fprintf(fp,"%s%s%s%s",a,b,c,d);
}
fprintf();就实现了把数据写入文件的功能。跟printf();差不多,只是一个是往文件里写,一个是往屏幕上写。
上面就实现了插入操作。
如果你想删除一个数据,就先在数组中删除,然后重新进行上述写入文件操作。 要是读取数据的话就在打开文件时:fp = fopen("c:a.txt",r+);
要是还不明白的话就看下书,这两个函数就可以满足你的需要。
private static DiskFileItemFactory factory; //获得磁盘文件条目工厂
private static ServletFileUpload upload; //文件上传处理类
factory = new DiskFileItemFactory(); //获得磁盘文件条目工厂
factory.setRepository(new File(config.getCache())); //创建缓存工厂
factory.setSizeThreshold(1024*1024*2) ; //设置缓存区的大小
upload = new ServletFileUpload(factory); //高水平的API文件上传处理
upload.setSizeMax(10 * 1024 * 1024); //设置文件上传的最大值
upload.setFileSizeMax(2* 1024 * 1024); //设置文件上传的最大值
ListFileItem list = upload.parseRequest(request);
for(FileItem item : list){
String fieldName = item.getFieldName(); //获取表单的属性名字
String fileName = item.getName() ; //获取文件名
if(item.isFormField()){ //如果获取的 表单信息是普通的 文本 信息
}else{
File file = new File("d://test.txt");
item.write(file);
}
}
public class FileUpLoad extends ActionSupport{
//"多文件上传就用list就可以了private ListFile file;"
private File file;
//上传文本的name
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
private String fileContentType;
//上传的文件类型。
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
//获取上传文件的名称
private String fileFileName;
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String upload() throws Exception
{
//获取文件上传路径
String root=ServletActionContext.getRequest().getRealPath("/upload");
InputStream is=new FileInputStream(file);
String.substring(fileFileName.indexOf("."));//截取上传文件的后缀。便于新定义名称。.jpg
System.out.println(name);
File descFile=new File(root,新定义的文件名称+fileFileName.indexOf("."));
OutputStream os=new FileOutputStream(descFile);
byte[] buffer=new byte[1024];
int length=0;
while(-1!=(length=(is.read(buffer))))
{
os.write(buffer, 0, length);
}
is.close();
os.close();
return SUCCESS;
}
}
// 这是我写的一个方法,里面只需要传两个参数就OK了,在任何地方调用此方法都可以文件上传
/**
* 上传文件
* @param file待上传的文件
* @param storePath待存储的路径(该路径还包括文件名)
*/
public void uploadFormFile(FormFile file,String storePath)throws Exception{
// 开始上传
InputStream is =null;
OutputStream os =null;
try {
is = file.getInputStream();
os = new FileOutputStream(storePath);
int bytes = 0;
byte[] buffer = new byte[8192];
while ((bytes = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytes);
}
os.close();
is.close();
} catch (Exception e) {
throw e;
}
finally{
if(os!=null){
try{
os.close();
os=null;
}catch(Exception e1){
;
}
}
if(is!=null){
try{
is.close();
is=null;
}catch(Exception e1){
;
}
}
}
}
structs
的
jsp
页面文件上传表单,只要项目是SSH的就行了
jsp:
s:form
action="add.do"
id="inputForm"
enctype="multipart/form-data"
td
s:file
name="upload"
cssClass="{required:true}"
contenteditable="false"/s:file
span
class="field_tipinfo"请选择文件/span
/td
/s:form
action:
private
File
upload;//上传的文件
....
public
String
add()
throws
Exception
{
//保存文件
save(upload);
}
...
普通方法实现任意上传?本地文件?本地文件直接用FileInputStream即可。
jspsmartupload需要在提交的form表单中添加一个属性,具体内容忘了=。=