Problem mit Sonder-Zeichenersetzung in String

GGK_01

Bekanntes Mitglied
Hallo,

ich lese mir ein File aus und möchte die darin enthaltenen Zeichen (\x0A\ und \x0D\) durch "\\r" bzw. "\\n" ersetzen.


Der Inhalt des einzulesendes Files hat folgenden Inhalt (gekürzt):
Code:
groder.png\x0D\\x0A\M)5!$1BTQ+C,-"B7BX\E\_3#0H-"C$@,"!O8FH-"CP\E\#0HO5'EP92`O0V%T86QO\x0D\\x0A\M9P

Java:
	public void strip(String infile, String outfile) throws IOException {
		
		StringReader fr = new StringReader(infile);
		BufferedReader br = new BufferedReader(fr);
		
		String gar = new String();
		while ((gar = br.readLine()) != null) {
			StringBuffer content = new StringBuffer(gar);
		
			 char[] ca;
	            for(int i=0;i<content.length();i++) {
	                char c = content.charAt(i); 	
	                
	                if(c=='\\') {
	                	ca = new char[5];
	                	for (int j=1;j<6;j++) {
	                		content.getChars(i, i+j, ca, 0);
	                		System.out.println(new String(ca));
	                	}

	                }
	            }
			
		    FileWriter fstream = new FileWriter(outfile);
	        BufferedWriter out = new BufferedWriter(fstream);
	        out.write(gar);
	        //Close the output stream
	        out.close();
			
		}
	}
als ST-Out erhalt ich z.B.
Code:
\
\x
\x0
\x0D
\x0Dx

Ich verstehe nicht, weshalb ich bei der letzten St-Out Zeile "\x0Dx" und nicht "\x0D\" erhalte.

Kann mir das jemand sagen bzw. was ich änder muss?

Danke

GGK


PS: das eigentliche was ich will ist, ein UUEncoded File decoden 😳
 
Zuletzt bearbeitet:
weil ich mit Reg. Expr. nicht umgehen kann ;-) und ich auch annehme, dass es damit auch nciht funktioniert. Ich bin aber offen und lasse mich gerne vom Gegenteil überzeugen ;-)

Java:
		   String[][] CODES = new String[][]
					    {
					    	{"\\F\\","|"},
					    	{"\\S\\","^"},
					    	{"\\T\\","&"},
					    	{"\\R\\","~"},
					    	{"\\E\\","\\"},
					        {"\\x0D\\","\r"},
					        {"\\x0A\\","\n"}
					    };
			
			
			

			gar.replaceAll(CODES[5][0],CODES[5][1]);
			gar.replaceAll(CODES[6][0],CODES[6][1]);
liefert mir einen java.util.regex.PatternSyntaxException: Unexpected internal error near index 5

wie würde denn das ein replaceAll auschauen?

Danke GGK
 
Zuletzt bearbeitet:
mit replaceAll gehts auch nicht.
Java:
	public void strip(String infile, String outfile) throws IOException {
		
		StringReader fr = new StringReader(infile);
		BufferedReader br = new BufferedReader(fr);
		
		String gar = new String();
		while ((gar = br.readLine()) != null) {
			
			   String[][] CODES = new String[][]
					    {

					        {"\\\\x0D\\\\","\\r"},
					        {"\\\\x0A\\\\","\\n"}
					    };
			
			
			

			gar.replaceAll(CODES[0][0],CODES[0][1]);
			gar.replaceAll(CODES[1][0],CODES[1][1]);
			
			
		    FileWriter fstream = new FileWriter(outfile);
	        BufferedWriter out = new BufferedWriter(fstream);
	        out.write(gar);
	        //Close the output stream
	        out.close();
			
		}
	}

Das Ersetzen der Zeichen findet nicht statt
 

Neue Themen


Zurück
Oben