It worked ok for me. I uncommented the line that creates fileName(s) and used the a "data file" with the following URLs: http://www.**--****.com/ http://www.**--****.com/ Not sure what is happening for you... Fred Burkley
<snip>
I suspect you have the wrong file name. Instead of using:
System.out.println(fileName);
try using:
System.out.println("fileName = '" + fileName + "'");
This should show up any unexpected characters such as '\r'.
If you want to read a text file, you would be better off treating it as a
text file and using a Reader. This way you will more likely get the
characterset right, and handle line endings better.
Steve
Since the original posting, I have tried this program on Solaris. It works fine on Solaris, but on Windows (98 & 2000) I keep getting error messages. Could someone kindly try it out on Windows and share their experience please? --NS
Nimmi, I tried your program on Solaris and Windows, and I ran into similar problems on Windows. It worked fine on Solaris. Regards, Sandeep
Replace the code above with the following, it may work on Windows:
if((c = (char) ret) != '\r')
{
urlAddr.append(c);
continue;
} else {
ret = finStm.read(); // skip '\n'
}
The reason is that the line end is '\n' on Unix whereas it is '\r\n'
on Windows/DOS.
I have not tested the code (because of firewall?). If someone has tested
it, please post the result here.
Weichao
Roedy Green < XXXX@XXXXX.COM > writes: Roedy, if you look at the original, very old posting, you will see that the problem is not the FileWriter. There are a number of problems in the original code, including: - Using an InputStream and not a Reader to read some text file - Doing line-by-line reading via the InputStream with a home-made EOL detection that will break on any file not using the Unix convention, instead of using a LineReader. - Usage of a DataInput stream for reading from a URL, serving no apparent purpose other then messing up the input data. - Improper handling of empty lines (might be an artefact of the problems with handling EOL). - Rather strange mixture of using String and StringBuffer, including converting a StringBuffer to a String and back to a StringBuffer on the next line, multiple times converting the same StringBuffer (with the same contents) to a String, etc. - Improper attempt to convert a URL to a local file name (here the broken EOL detection can sneak control chars into the name, and some valid URL chars are not handled at all, like '=', '&', or '%'). And the control char \r from the name is why the creation of the FileWriter breaks. - Usage of the deprecated DataInputStream.readLine() to read a String. - Usage of FileWriter to write bytes - which have just been converted from the String gotten from DataInputStream.readLine() ... - Manual memory handling: Manually clearing existing objects instead of just creating new ones. And I might have missed a few things. In other words: THAT CODE DESERVES TO BE TAKEN OUT AND SHOT! The remains have to be treated as toxic waste. Please, leave it alone. /Thomas
Hi:
I'm writing a simple Web application that gets image data from a
third-party applet and writes it to a specified directory on a Web
server (this is done using a JSP and a JavaBean handling the file
upload.)
When I upload any *.jpg and attempt to write it to the server,
however, the size of the copied image on the server directory is
exactly the same, but when I try to open the file, I get "No Preview
Available" from Windows Picture and Fax Viewer, "Can't determine type"
from Microsoft Photo Editor, etc.
Here is the code that I used to read from the applet source and write
to the server:
try {
// get the image input from applet
ServletInputStream in = request.getInputStream();
FileOutputStream ostrm = new FileOutputStream("picture4.jpg");
byte[] readArray = new byte[1];
while((in.read(readArray)) != -1)
{
ostrm.write(readArray);
}
// close all streams
in.close();
ostrm.close();
return true;
} catch (Exception e) {
System.out.println("check console");
return false;
}
}
Can anyone help me out?
I get problem using FileWriter when I insert "/n" in it .It shows some
ugly square instead of going to the new line
I tried following code
***********************************************************************
import java.io.*;
class Writer
{
public static void main(String args[])
{
String str ="Rahul is writing this piece\n"
+"I know that black square will come in place of newline
character\n"
+"I there anybody who can help me\n";
char [] ch = new char[str.length()];
str.getChars(0,str.length(),ch,0);
try
{
FileWriter fw =new FileWriter("testfile.txt");
fw.write(ch);
fw.close();
}
catch(IOException ioe){}
}
}
**********************************************************************
Please help in case you have a solution to this problem
Thanking in anticipation
Rahul Sharma
XXXX@XXXXX.COM
3.problem writing doubles with java filewriter
I can write strings fine but can't write doubles. Do I have to close the file and try writing with another method?
4.FileWriter.write() does not fail if file is removed after being opened
Greetings! This may be an OS thing, but FileWriter.write(Sting,int,int) thinks it is writing ok when I remove the file it is writing to after the file has been opened. No exception is thrown, because the line directly after the write() and flush() within the try block is executed (I am catching Exception if that matters). I am speculating that the OS is not notifying the owner of the file handle (if I an saying it right) that the file has been deleted / removed / whatever, and that this might function differently on different systems. I am trying to create a failover for a log writing thread, and I am removing the file to simulate an IO error, hehe but that's not working. Is there a) a better way to simulate an IO error? and b) a more primitive write method that might throw an exception in this unlikely circumstance? Thanx! clh
5.java.io.FileReader and java.io.FileWriter encoding
Hi, I recently changed the hosting for my website (from Linux to Linux) and now I'm experiencing some trouble with java.io.FileReader and java.io.FileWriter: their getEncoding() method returns ASCII (returned ISO8859_1 on the previuos host). I've set -Dfile.encoding=ISO-8859-1 but nothing has changed, except that javax.mail.internet.MimeUtility.getDefaultJavaCharset() effectively returns ISO-8859-1. Does anyone know how the default encoding is selected? I report some system properties: file.encoding.pkg: sun.io user.country: US java.runtime.version: 1.4.2_04-b05 os.version: 2.4.27 user.timezone: America/New_York file.encoding: ISO-8859-1 user.language: en java.version: 1.4.2_04 java.vendor: Sun Microsystems Inc. ----- Mario
Users browsing this forum: No registered users and 79 guest