2016-04-23 27 views
0

Ich muss eine Zeile Text in den Code eingeben und lassen Sie diesen Text in die Datei in allen oberen kam, alle Kleinbuchstaben und umgekehrt. Ich weiß, wie man das mit string macht, kann aber nicht herausfinden, wie man es so auf diese Weise in die Datei schreibt. Ich brauche keine Hilfe, um den Text in der Ausgabe zu drucken, sondern ihn dazu zu bringen, alle diese Möglichkeiten auf die eigentliche PrintToFile.txt zu drucken, ohne sie tatsächlich auf diese verschiedenen Arten einzugeben.Drucken einer Zeichenfolge in einer Datei in Großbuchstaben, Kleinbuchstaben und rückwärts java

import java.io.FileNotFoundException; 
import java.lang.SecurityException; 
import java.util.*; 
import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 

public class PrintToFile { //open class 

private static Formatter output; 

public static void main (String args[]) throws IOException { //open main  
openFile(); 
addRecords(); 
closeFile(); 

BufferedReader printFile = new BufferedReader(new FileReader("YoastReginaITM251Project9.txt")); 

for (String line; (line = printFile.readLine()) != null;) { //open for 
    System.out.println("Text: " + line); 
    System.out.println("Text in Upper Case: " + line.toUpperCase()); 
    System.out.println("Text in Lower Case: " + line.toLowerCase()); 
    System.out.println("Text in Reverse Case: " + line); 
} //close for 

} //close main 

public static void openFile() { //open openFile 

try { //open try 
    output = new Formatter("PrintToFile.txt"); //open file 
} //close try 

catch (SecurityException securityException) { //open catch 
    System.err.println("Write permission denied. Terminating."); 
    System.exit(1); 
} //close catch 

catch (FileNotFoundException fileNotFoundException) { //open catch 
    System.err.println("Error opening file. Terminating."); 
    System.exit(1); 
} //close catch 

} //close openFile 

public static void addRecords() { //open addRecords 


    try { //open try 
    output.format("%s", input.nextLine()); 
    } //close try 
    catch (FormatterClosedException formatterClosedException) { //open catch 
    System.err.println("Error writing to file. Terminating."); 
    } //close catch 
    catch (NoSuchElementException elementExpcetion) { //open catch 
    System.err.println("Invalid input. Please try again."); 
    input.nextLine(); 
    } //close catch 


    } //close AddRecords 

public static void closeFile() { //open closeFile 

    if (output != null) 
    output.close(); 

    } //close closeFile 

} //close class 
+0

Verwenden Sie einen 'FileWriter' und drucken Sie die Zeichenkette in seinen Inkarnationen zur Akte? – KevinO

Antwort

0

können Sie die Stringbuilder-Klasse verwenden (https://docs.oracle.com/javase/tutorial/java/data/buffers.html) neue Saiten zu erstellen, wie Sie möchten, dann die Ausgabe in Datei.

+0

danke! Wie würde ich das tun? Würde ich es auf meine AddRecords oder anderswo drucken? Ich bin nicht sehr erfahren mit StringBuilder und habe auch das Lesen über Code ein wenig schwierig gefunden – aymequinn

+0

Ich bin nicht ganz klar auf, was Ihr Ziel ist. Aber sieht das so aus, als ob Sie versuchen, dies zu erreichen ?: http://stackoverflow.com/questions/1677194/dumping-a-java-stringbuilder-to-file –

1
String input = "MagicString"; 

    String upperCase = input.toUpperCase(); 
    String lowerCase = input.toLowerCase(); 

    StringBuilder sb = new StringBuilder(); 
    sb.append(input); 

    String reversedString = sb.reverse().toString(); 
0

Der einfache Weg ist:

  1. Lesen aus einer Datei in einen String.
  2. Wenden Sie toUpperCase() an und speichern Sie sie in einer anderen Zeichenfolge.
  3. Wenden Sie toLowerCase() an und speichern Sie es in einer anderen Zeichenfolge.
  4. Wenden Sie reverse() [eigene erstellte Methode] an und speichern Sie sie in einer anderen Zeichenfolge.
  5. Dann schreiben Sie alle diese Zeichenfolgen in die Zieldatei.

Hier ist der Code, mit dem Sie die erforderliche Operation ausführen können.

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.PrintWriter; 
public class FileRW { 

public static void main(String[] args) throws FileNotFoundException, IOException { 

String filename="filename.txt"; 
    String upper,lower,reverse,line; 
    upper=null; 
    lower=null; 
    reverse=null; 
    line=null; 

    FileReader fileReader=new FileReader(filename); 

    BufferedReader bufferedReader=new BufferedReader(fileReader); 

    while((line=bufferedReader.readLine())!=null) 
    { 
    upper=line.toUpperCase(); 

    lower=line.toLowerCase(); 

    reverse=reverse(line); 

    writeToFile(upper,lower,reverse); 
    } 
} 
static String reverse(String test) 
{ String returnString=""; 

    int len=test.length(); 

    for(int i=len-1;i>=0;i--) 
    { 
     returnString+=test.charAt(i); 
    } 
    return returnString; 
} 

static void writeToFile(String line1,String line2,String line3) throws IOException 
{ 
    String filename="content.txt"; 


     File file =new File(filename); 

     //if file doesnt exists, then create it 
     if(!file.exists()){ 
      file.createNewFile(); 
     } 

     //true = append file 
     FileWriter fileWritter = new FileWriter(file.getName(),true); 
      BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
      bufferWritter.write(line1); 
      bufferWritter.write(line3); 
      bufferWritter.write(line2); 
      bufferWritter.close(); 

     System.out.println("Done"); 
    } 
} 
0

Vielleicht könnten Sie auch die Scanner- und FileWriter-Klassen verwenden. Sie können etwas wie dieses versuchen, wenn es für Ihre Zwecke funktioniert:

import java.io.*; 
import java.util.*; 

public class Solution{ 

    /* 
    * Print a string to the output file 
    */ 

    private void print(String s, FileWriter o) { 

     try { 

      o.write(s + "\n"); 

     } catch (IOException e) { 

      e.printStackTrace(); 

     } 

    } 


    /* 
    * Convert the strings to uppercase, 
    * lowercase and reverse. 
    */ 

    private void solver(Scanner sc, FileWriter o){ 

     while(sc.hasNextLine()) { 

      String s = sc.nextLine(); 
      print(s.toUpperCase(), o); 
      print(s.toLowerCase(), o); 
      print(new StringBuilder(s).reverse().toString(), o); 

     } 

    } 


    /* 
    * Main method 
    */ 

    public static void main(String args[]){ 

     File inFile = new File("input.txt"); 
     File outFile = new File("output.txt"); 

     try{ 

      Scanner sc = new Scanner(inFile); 
      FileWriter o = new FileWriter(outFile); 
      Solution s = new Solution(); 
      s.solver(sc, o); 
      sc.close(); 
      o.close(); 

     } catch(Exception e){ 

      System.out.println(e); 

     } 
    } 
}