Member 14001444
Спасибо вам всем, я попробую "отладить", как сказал OriginalGriff, я действительно Новичок и программирую, но спасибо вам всем! и нет, я не работаю над веб-приложением, это просто школьный проект в консоли, Ну и еще вопрос, есть ли что-то вроде отладки в IntelliJ (Java)?
Thank You all i will try "Debugging" like OriginalGriff said, i'm really a beginner and programming though but thank you all!
So i was trying to use the the bug mode and something is not right i can't really seem to find the error, i will try to clarify things for you guys so first of all here is the code:
<pre>using System;
using System.IO;
// Aula de manipulação de files do tipo TXT
/* Procedimentos:
1- criar uma string com o caminho e nome de um ficheiro a criar no disco
2- Usar um método nativo para criar o ficheiro
3- Usar um método nativo para ler o ficheiro*/
namespace Cap07_Aula01_FilesTxt
{
class Program
{
static void Main(string[] args)
{
//String fileLocation = "D:\\Users\\a49240\\Desktop\\";
String fileLocation = "C:\\Users\\Hugo\\Desktop\\";
//String fileLocation = "C:\\Users\\????\\Desktop\\teste.txt";
String name = ""; //Inicialização da string name
//Pede o nome do fichero enquanto a extensão não for .txt ou o nome for menor que 4
do
{
System.Console.WriteLine("Insira o nome do ficheiro! (A extensão tem de ser .txt)");
name = Console.ReadLine();
} while (name.Length < 4 || name.Substring(name.Length -4) != ".txt");
//CreateFile(fileLocation); // Criar file
CreateFile(name, fileLocation);
WriteToFile(fileLocation+name); //Escrever dentro do ficheiro
ReadFromFile(fileLocation + name); //Lê o ficheiro TXT
}
/// <summary>
/// Criar Ficheiro TXT
/// </summary>
/// <param name="file">recebe localização do ficheiro a criar</param>
static void CreateFile(string file)
{
// Bloco try-catch para apanhar eventual exceção do tipo IOException
try
{
//Tentativa de criação do ficheiro
StreamWriter streamWriter = new StreamWriter(file); //Cria a file, caso não exista se exister abre-a
System.Console.WriteLine("O ficheiro foi criado com sucesso");
streamWriter.Close(); //Necessário fechar sempre a file após uso
}
catch (IOException e)
{
// Se for gerada a exceção, esta é a resposta
Console.WriteLine("O ficheiro não pode ser criado. \n\n\n");
Console.WriteLine(e.StackTrace);
}
catch (ArgumentException e)
{
// Se for gerada a exceção, esta é a resposta
Console.WriteLine("Há carateres ilegais no caminho indicado. \n\n\n");
Console.WriteLine(e.StackTrace);
}
}
/// <summary>
/// Cria um Ficheiro TXT
/// </summary>
/// <param name="name">nome do ficheiro</param>
/// <param name="location">localização (path) do ficheiro</param>
static void CreateFile(string name,string location)
{
string file = location + name; //Concatena a localização e o nome
// Bloco try-catch para apanhar eventual exceção do tipo IOException
try
{
//Tentativa de criação do ficheiro
StreamWriter streamWriter = new StreamWriter(file); //Cria a file, caso não exista se exister abre-a
System.Console.WriteLine("O ficheiro foi criado com sucesso");
streamWriter.Close(); //Necessário fechar sempre a file após uso
}
catch (IOException e)
{
// Se for gerada a exceção, esta é a resposta
Console.WriteLine("O ficheiro não pode ser criado. \n\n\n");
Console.WriteLine(e.StackTrace);
}
catch (ArgumentException e)
{
// Se for gerada a exceção, esta é a resposta
Console.WriteLine("Há carateres ilegais no caminho indicado. \n\n\n");
Console.WriteLine(e.StackTrace);
}
}
/// <summary>
/// Escrita no Ficheiro
/// </summary>
/// <param name="file">Localizaçao do ficheiro</param>
static void WriteToFile(string file)
{
// Bloco try-catch para apanhar eventual exceção do tipo IOException
try
{
StreamWriter sw = new StreamWriter(file); //Cria a file, caso não exista se existir abre-a
sw.Write("Olá mundo"); //Escreve na file
sw.WriteLine(", eu sou o ");
sw.Close(); //Necessário fechar a file para poder ser lido
Console.WriteLine("Escrita no ficheiro com SUCESSO");
}
catch (IOException e)
{
Console.WriteLine("Escrita no ficheiro com erros... NABO\n\n\n");
Console.WriteLine(e.StackTrace);
}
catch(ArgumentException e)
{
// Se for gerada a exceção esta é a resposta
Console.WriteLine("Há carateres ilegais no caminho indicado . \n\n\n");
Console.WriteLine(e.StackTrace);
}
}
public static void ReadFromFile(String nameLocation)
{
try
{
String fileText = System.IO.File.ReadAllText(nameLocation);
System.Console.WriteLine(fileText);
System.Console.WriteLine("\nReadFromFile: O ficheiro foi lido");
}
catch (FileNotFoundException e)
{
System.Console.WriteLine("ReadFromFile: Ficheiro não encontrado");
}
catch (IOException e)
{
System.Console.WriteLine("ReadFromFile: Problemas com acesso ao ficheiro");
}
catch (Exception e)
{
System.Console.WriteLine("ReadFromFile: Apanhada qualquer outra exceção");
}
}
}
}
Я надеюсь, что это поможет, даже если это на моем родном португальском языке, так что проблема заключается в методе ReadFromFile, который он может прочитать и показать мне, что было написано с помощью метода WriteToFile (печать консоли в помощь:
https://prnt.sc/l04i8q[
^]
На данный момент все в порядке, но когда я иду в блокнот и пытаюсь изменить его, когда я снова выполняю свой код, он не читает то, что я только что обновил. Я надеюсь, что это поможет вам, ребята, помочь мне разобраться в этом. У вас есть код, так что вы можете попробовать его сами, даже если он на португальском языке.
О, я забыл упомянуть, что у меня есть тот же проект на Java, я пытаюсь скопировать его на C#, он отлично работает на Java.
package com.company;
import java.io.*;
import java.util.Scanner;
// Aula de manipulação de files do tipo TXT
/* Procedimentos:
1- criar uma string com o caminho e nome de um ficheiro a criar no disco
2- Usar um método nativo para criar o ficheiro
3- Usar um método nativo para ler o ficheiro*/
public class Main {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in); //Criação e inicialização do scanner teclado
String fileLocation = "D:\\Users\\a49240\\Desktop\\";
//String fileLocation = "C:\\Users\\Hugo\\Desktop\\";
//String fileLocation = "C:\\Users\\????\\Desktop\\teste.txt";
String name; //Inicialização da string name
//Pede o nome do fichero enquanto a extensão não for .txt ou o nome for menor que 4
do{
System.out.println("Insira o nome do ficheiro! (A extensão tem de ser .txt)");
name = teclado.nextLine();
}while( name.length() < 4 || !name.substring(name.length() -4,name.length()) .equals(".txt"));
System.out.println(name); //Imprime o nome do ficheiro
/////////////////////////////////////////////////////////////
// Criar File
////////////////////////////////////////////////////////////
//CreateFile(fileLocation);
CreateFile(name,fileLocation);
// Pausa para poder alterar o conteúdo da file
try{
System.out.print("\nPausa: Carregue numa tecla para continuar! ");
System.in.read();
} catch (IOException e){
System.out.print("ERRO na pausa: \n\n "+e.getMessage());
}
//////////////////////////////////////////////////////////////
//Escrita para um ficheiro
/////////////////////////////////////////////////////////////
WriteToFile(fileLocation+name,"Olá TGPSI"); // Escreve dentro do ficheiro
// Pausa para poder alterar o conteúdo da file
try{
System.out.print("\nPausa: Carregue numa tecla para continuar! ");
System.in.read();
} catch (IOException e1){
System.out.print("ERRO na pausa: \n\n "+e1.getMessage());
}
///////////////////////////////////////////////////////////////
// Ler um ficheiro txt
///////////////////////////////////////////////////////////////
ReadFromFile(fileLocation+name);
}
/**
* Criar Ficheiro TXT
* @param nameLocation localização e nome do ficheiro