@ -0,0 +1,10 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<classpath> | |||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"> | |||
<attributes> | |||
<attribute name="module" value="true"/> | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="src" path="src"/> | |||
<classpathentry kind="output" path="bin"/> | |||
</classpath> |
@ -0,0 +1,17 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<projectDescription> | |||
<name>EditorTxtEnDirecto</name> | |||
<comment></comment> | |||
<projects> | |||
</projects> | |||
<buildSpec> | |||
<buildCommand> | |||
<name>org.eclipse.jdt.core.javabuilder</name> | |||
<arguments> | |||
</arguments> | |||
</buildCommand> | |||
</buildSpec> | |||
<natures> | |||
<nature>org.eclipse.jdt.core.javanature</nature> | |||
</natures> | |||
</projectDescription> |
@ -0,0 +1,2 @@ | |||
eclipse.preferences.version=1 | |||
encoding/<project>=UTF-8 |
@ -0,0 +1,14 @@ | |||
eclipse.preferences.version=1 | |||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | |||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 | |||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve | |||
org.eclipse.jdt.core.compiler.compliance=17 | |||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate | |||
org.eclipse.jdt.core.compiler.debug.localVariable=generate | |||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate | |||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error | |||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled | |||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error | |||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning | |||
org.eclipse.jdt.core.compiler.release=enabled | |||
org.eclipse.jdt.core.compiler.source=17 |
@ -0,0 +1,42 @@ | |||
# README.md | |||
## Titulo | |||
Editor Txt en Directo | |||
## Autor | |||
Alejandro Javier Albus 2CFGS DAM | |||
## Enunciado | |||
ACTIVIDAD 05 : Crea un programa que vaya escribiendo en un fichero que se le pasará por la línea de comandos. | |||
Irá escribiendo los caracteres hasta que lea el carácter \. Antes de dicho char inclusive. | |||
OJO: Si el fichero ya existe, al escribir borrará todo su contenido anterior. | |||
Para que esto no ocurra al instanciar un objeto de la clase FileWriter pondremos como segundo parámetro true. | |||
## Uso | |||
Debe introducir cadenas de caracteres y cuando crea que ya ha terminado introduzca la contrabarra ('\'). | |||
El programa creará un archivo ya rellenado en la ruta pasada. | |||
## Ejemplo de ejecución | |||
<pre> | |||
Task: EditorTxtEnDirecto.main() | |||
Escriba lo que desee. | |||
1a frase: En un lugar de La Mancha ... | |||
2a frase: De cuyo nombre no quiero ... | |||
Final e introducimo en sig. linea la contrabarra ... | |||
\ | |||
- Caracter stopper. | |||
+ Se ha terminado la ejecución. | |||
</pre> | |||
## Dependencias | |||
Uso de librerias externas: | |||
* java.io.BufferedWriter | |||
* java.io.File | |||
* java.io.FileNotFoundException | |||
* java.io.FileWriter | |||
* java.io.IOException | |||
* java.util.Scanner | |||
## Licencia | |||
Uso libre |
@ -0,0 +1,104 @@ | |||
package EditorTxtEnDirecto; | |||
import java.io.BufferedWriter; | |||
import java.io.File; | |||
import java.io.FileNotFoundException; | |||
import java.io.FileWriter; | |||
import java.io.IOException; | |||
import java.util.Scanner; | |||
public class EditorTxtEnDirecto { | |||
private static final Scanner lector = new Scanner(System.in); | |||
public static void main(String[] args) { | |||
final char STOPPER = '\\'; | |||
String pathContainer = "C:\\Users\\jandr\\Desktop\\Acceso a datos\\Container Ficheros"; | |||
String fileName = "Ejercicio5_0310.txt"; | |||
//Creamos el archivo | |||
File f = makeFile(pathContainer, fileName); | |||
//Rellenamos el archivo | |||
String finalInput = ""; | |||
System.out.println("\n>Escriba lo que desee."); | |||
boolean validate = false; | |||
while (!validate) { | |||
String userInput = readString(); | |||
//Iteramos lo introducido CHAR por CHAR por si aparece la '\' | |||
for(int i = 0; i < userInput.length(); i++) { | |||
if(userInput.charAt(i) == STOPPER) { | |||
System.out.println("\n- Caracter stopper."); | |||
userInput = ""; | |||
validate = true; | |||
} | |||
} | |||
finalInput += userInput; | |||
}; | |||
//Rellenamos el archivo | |||
fillFile(f, finalInput); | |||
System.out.println("\n+ Se ha terminado la ejecución."); | |||
} | |||
/** | |||
* Lee y devuelve un String | |||
* @return | |||
*/ | |||
public static String readString() { | |||
return lector.nextLine(); | |||
} | |||
/** | |||
* Creará un archivo con el nombre archivo | |||
* @param directory | |||
* @param file | |||
* @return | |||
*/ | |||
public static File makeFile(String directory, String file) { | |||
File f = new File(directory + File.separator + file); | |||
if (f != null) { | |||
try { | |||
if (f.createNewFile()) | |||
return f; | |||
} catch (IOException e) { | |||
System.out.println("- Ha surgido un problema... \n(i) It exists: " + f.exists() + "\tLength: " + f.length()); | |||
} | |||
} | |||
return null; | |||
} | |||
/** | |||
* Rellena el File/Archivo con el String pasado | |||
* Los saltos de linea -\n- si que los cuenta. | |||
* @param f | |||
* @param content | |||
*/ | |||
public static void fillFile(File f, String content) { | |||
if (f.exists() && f.isFile()) { | |||
try (BufferedWriter bw = new BufferedWriter(new FileWriter(f.getPath()))) { | |||
bw.write(content); | |||
} catch (FileNotFoundException fnf) { | |||
System.out.println("\n- Ha saltado una excepción FNF ... " + fnf.getMessage()); | |||
} catch (IOException io) { | |||
System.out.println("\n- Ha saltado una excepción I/O ... " + io.getMessage()); | |||
} | |||
} else { | |||
System.out.println("\n- El archivo no existe ... "); | |||
} | |||
} | |||
} |