webForumDet fria alternativet

renameTo(File f)..

2 svar · 227 visningar · startad av BABBA

BABBAMedlem sedan feb. 2000280 inlägg
#1

hej

detta försöker jag åstadkomma:
1. Öppna en fil
2. Skriva till en ny fil.
3. Byta namn på den nya filen till det namn som den första filen hade.

Det går inget bra för jag får inte renameTo() att funka. Min kod

import java.io.*;

class fixer {
    public static void main(String[] args) {

    	String filename = args[0];

        try {

				File inputFile = new File(filename);
				File outputFile = new File(filename);

				FileInputStream fis = new FileInputStream(inputFile);
				FileOutputStream fos = new FileOutputStream(outputFile);
				int c;

				while (((c = fis.read()) != -1)) {
					if(c!=13){
					if(c==10) fos.write(13);
					fos.write(c);
				}
            }

            fis.close();
	    fos.close();

        } catch (FileNotFoundException e) {
            System.err.println("FileStreamsTest: " + e);
        } catch (IOException e) {
            System.err.println("FileStreamsTest: " + e);

        }
    }
}

Det är mkt fullhackat det hela men jag behöver hjälp med renameTo/delete delen i koden. Jag vill alltså bara ha kvar en modifierad version av filen.

ViktorMedlem sedan aug. 20021 710 inlägg
#2

Denna kod fungerar för mig

import java.io.*;

class fixer
{
	public static void main(String[] args)
	{
		try
		{
			File inputFile= new File("c:\\temp\\Test1.txt");
			File outputFile= new File("c:\\temp\\Test2.txt");
			FileInputStream fis= new FileInputStream(inputFile);
			FileOutputStream fos= new FileOutputStream(outputFile);
			int c;
			while (((c= fis.read()) != -1))
			{
				if (c!=13)
				{
					if(c==10)
						fos.write(13);
					fos.write(c);
				}
			}
			fis.close();
			fos.close();
			inputFile.delete();
			outputFile.renameTo(inputFile);
		}
		catch (FileNotFoundException e)
		{
			System.err.println("FileStreamsTest: " + e);
		}
		catch (IOException e)
		{
			System.err.println("FileStreamsTest: " + e);
		}
	}
}
BABBAMedlem sedan feb. 2000280 inlägg
#3

Tack, ska testa det!

Genererad på 352 ms · cache AV · v20260730165559-full.f96bc7eb