(高分请教!UP有分!!)####如何将数据写入文件(JSP)?急用,在线等待!! (100分)

  • 主题发起人 unclymouse
  • 开始时间
U

unclymouse

Unregistered / Unconfirmed
GUEST, unregistred user!
String path = request.getRealPath(".");
//取得目前目录在伺服端的实际位置
FileWriter fw = new FileWriter(path + "//WriteData.txt");
//建立FileWrite物件,并设定由fw物件变数引用
fw.write("000000");//将字串写入文件
fw.close();
//关闭文件
这是我的程序,它现在能够将数据写入WriteData.txt文件,但是再次写入的时候就会将前次
写入的数据覆盖,也就是说WriteData.txt文件里怎样都只有最后一次的数据,要怎样才能使
文件里存在每一次输入的数据??
请教各位大虾~~~希望大家给我UP,我也给分的,先谢谢了
小弟QQ 39493690 希望加为好友来讨论
 
S

snowsky

Unregistered / Unconfirmed
GUEST, unregistred user!
你查查FileWriter 的文件打开模式有几种,如你所说的应该是新建一个文件,不管原有文件是否
存在(原文件被覆盖)。
我不会JSP,这只是我的观点。
 
Y

yljailxx

Unregistered / Unconfirmed
GUEST, unregistred user!
D

delphi_newuser

Unregistered / Unconfirmed
GUEST, unregistred user!
FileWriter theFile = new FileWriter(path,true);
PrintWriter out = new PrintWriter(theFile);
   out.print(something + "/n");
    out.close();
    theFile.close();
    return "success!!";
 
U

unclymouse

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi_newuser:
你的方法我试了不行啊~
还有没有其他的方法?
 
O

only you

Unregistered / Unconfirmed
GUEST, unregistred user!
使用如下构造函数
  FileWriter(String fileName, boolean append)
程序改写为
String path = request.getRealPath(".");
//取得目前目录在伺服端的实际位置
[red]//在后面多写一个参数就行了
FileWriter fw = new FileWriter(path + "//WriteData.txt",true);
[/red]
//建立FileWrite物件,并设定由fw物件变数引用
fw.write("000000");//将字串写入文件
fw.close();
//关闭文件
 
U

unclymouse

Unregistered / Unconfirmed
GUEST, unregistred user!
only you能不能帮我看看1:我的程序能够运行,
2:但是一点“修改”按扭:分为2种情况:(1)如果数据库里有要修改的数据就出错为“javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引”;(2)如果数据库里没有要修改的数据就通得过~~
程序如下:
<%@page contentType="text/html;charset=GB2312"
import="java.sql.*"%>
<%!
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public void jspInit()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//加载驱动程序类
con=DriverManager.getConnection("jdbc:eek:dbc:BookDB");
//建立Connection(数据库链接)对象,并设置由cnnDB对象变量引用。
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立Statement对象,并设置建立之ResultSet对象光标可前后移动。
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
public void jspDestroy()
{
try
{
rs.close();
//关闭ResultSet对象
stmt.close();
//关闭Statement
con.close();
//关闭Connection对象
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
%>
<html>
<head>
<title>整条记录的修改</title>
</head>
<body>
<center>
整条记录的修改
</center>
<hr>
<%
String BID=request.getParameter("tbxBookID");
String HID=request.getParameter("hidRecID");
if(BID==null)
{
rs=stmt.executeQuery("SELECT * FROM Book");

%>
<table bgcolor=DodgerBlue>
<tr bgcolor=SkyBlue>
<TD><B>书籍编号</B></TD><TD><B>署 名</B></TD>
<TD><B>作 者</B></TD>
</tr>
<%
while(rs.next())
{
%>
<TR bgcolor=LightGoldenrodYellow>
<td><b><%=rs.getString("BookID")%></b></td>
<td><b><%=rs.getString("Title")%></b></td>
<td><b><%=rs.getString("Author")%></b></td>
</TR>
<%
}
%>
</table><p></p>
<P>请输入要查询的数据:</P>
<form action="bianji.jsp" method="POST" id="form2" name="form2">
<input type="text" name="tbxBookID">
<input type="submit" value="进行修改" name="submit1">
</form>

<%
}
else
{
String strSQL="SELECT * FROM Book WHERE BookID='"+BID+"'";

rs=stmt.executeQuery(strSQL);
if(!rs.next())
{
%>
<center>
<p>找不到书号为<%=BID%>的书籍</p>
<P><A href=bianji.jsp>还要进行修改</A></P>
</center>
<%
}
else
{
%>
<form action="bianji.jsp" method=post>
<table>
<tr COLSPAN=2 align=center>
<tr>
请在窗体中进行数据的修改
</tr>
<tr><td>书籍编号</td>
<td>
<input type="text" name=tbxBookID
value="<%=rs.getString("BookID")%>">
</td>
</tr>
<tr>
<td>书 名</td>
<td>
<input type="text" name=tbxTitle
value="<%=rs.getString("Title")%>">
</td>
</tr>
<tr><td>作 者</td>
<td>
<input type="text" name=tbxAuthor
value="<%=rs.getString("Author")%>">
</td>
</tr>
</table>
<input type="hidden" name=hidRecID
value=<%=rs.getInt("ID")%>><p></p>
<input type="submit" value="进行修改" name=submit3>
<a href=bianji.jsp>放弃修改</a>

</form>
<%
}
String strDEL="DELETE * FROM Book WHERE ID ="+
HID;
stmt.executeUpdate(strDEL);
strSQL="INSERT INTO Book(BookID,Title,"+
"Author)Values('"+
request.getParameter("tbxBookID")+"','"+
request.getParameter("tbxTitle")+"','"+
request.getParameter("tbxAuthor")+"')";
stmt.executeUpdate(strSQL);
strSQL="SELECT * FROM Book WHERE"+
"BookID='"+BID+"'";
rs=stmt.executeQuery(strSQL);
rs.next();
%>
<%=BID%>
<p>修改后的数据如下:</p>
<table width="75%" border="1">
<tr>
<td width="48%"><b>书籍标号</b> </td>
<td width="52%"><b>书 号</b> </td>
</tr>
<tr>
<td><b><%=rs.getString("ID")%></b> </td>
<td><b><%=rs.getString("BookID")%></b> </td>
</tr>
<tr>
<td><b>书 名</b> </td>
<td><b>作 者</b> </td>
</tr>
<tr>
<td><b><%=rs.getString("Title")%></b> </td>
<td><b><%=rs.getString("Author")%></b> </td>
</tr>
</table>
<p><a href=bianji.jsp>还要进行修改</a></p>
<%
}
%>
</body>
</html>
1:我的数据库连接上了的,我能够查找数据库并将记录输出;
2:我的程序能够运行,
3:但是只要点击“修改”按扭:分为2种情况:(1)如果数据库里存在要修改的数据就出错
为“javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引”;
(2)如果数据库里没有存在修改的数据就能够运行~~
 
U

unclymouse

Unregistered / Unconfirmed
GUEST, unregistred user!
那个问题已经解决,100分我全给你,你能不能顺便帮我看看这个程序???
先谢谢了~~
 
O

only you

Unregistered / Unconfirmed
GUEST, unregistred user!
DELETE FROM Book WHERE ID ...
去掉那个 *
其他的问题你自己看文档吧,其实你的问题都可以从java.sql包中找到答案
 
I

ike

Unregistered / Unconfirmed
GUEST, unregistred user!
JSP不用的
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
890
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部