• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C# FileStream wprowadzanie danych do pliku

Object Storage Arubacloud
+1 głos
413 wizyt
pytanie zadane 26 sierpnia 2020 w C# przez Nabuchadonozor Gaduła (3,120 p.)
zamknięte 30 sierpnia 2020 przez Nabuchadonozor

Serwus Forumowicze,

otóż przesiadłem się z C++ na C# i napotkałem pewną zagwostkę, której nie mogę samemu rozwiązać.

Wie ktoś może, jak przekształcić poniższy kod, tak by można było wprowadzić prosty napis (string) do pliku?

namespace FS
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "/test.txt";


            FileStream fs = new FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.Write);

            fs.Close();
        }
    }
}

Tak jak np. w C++ "file << "przykladowy text" << endl; ", tylko jak to zrobić w C#, nie mogę tego rozgryźć...

Proszę o pomoc ;)

komentarz zamknięcia: Wyjaśnione poniżej ;)

2 odpowiedzi

+1 głos
odpowiedź 26 sierpnia 2020 przez VBService Ekspert (252,660 p.)
edycja 28 sierpnia 2020 przez VBService
 
Najlepsza

Do szybkiego zapisuwink

using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

namespace FS
{
    class Program
    {
        static void Main(string[] args)
        {
            string app_path = AppDomain.CurrentDomain.BaseDirectory;
            string path_1 = app_path + "test1.txt";
            string path_2 = app_path + "test2.txt";
            string path_3 = app_path + "test3.txt";
            string path_4 = app_path + "test4.txt";
            string path_5 = app_path + "test5.txt";

            // TEST 1
            string text = "1. Lorem ipsum dolor sit amet, consectetur adipiscing\n";
                   text += "2. Lorem ipsum dolor sit amet, consectetur adipiscing\n";
            File.WriteAllText(path_1, text);

            // TEST 2
            text = @"3. Lorem ipsum dolor sit amet, consectetur adipiscing, vestibulum ante ipsum
                     4. Lorem ipsum dolor sit amet, consectetur adipiscing, vestibulum ante ipsum 
                     5. Lorem ipsum dolor sit amet, consectetur adipiscing, primis in faucibus orci luctus et";
            text = Regex.Replace(text, @"\s+", " ") + "\n";
            text += "6. Vestibulum ante ipsum\n";
            File.WriteAllText(path_2, text);

            // TEST 3
            int a = 10, b = 20;
            double c = 0.5, d = 6.75;
            text = string.Format("Dodawanie: {0} + {1} = {2}", a, b, (a+b)) + "\n";
            text += string.Format("Dzielenie: {0} / {1} = {2}", d, c, (d/c)) + "\n";
            File.WriteAllText(path_3, text);

            // TEST 4
            string[] lines = {"7. Vestibulum ante ipsum","8. primis in faucibus orci luctus et"}; 
            File.WriteAllLines(path_4, lines);

            // TEST 5
            text = "Ąą Ćć Ęę Łł Ńń Óó Śś Żż Źź\n\\n \\ !@#$%^&*()_+=-[]{};:'\",.<>?|/`~";
            byte[] data = Encoding.UTF8.GetBytes(text);
            File.WriteAllBytes(path_5, data);

            Console.WriteLine("Dane zostały zapisane");
            Console.ReadKey();            
        }
    }
}

C# write text files ]
FileStream Vs System.IO.File.WriteAllText when writing to files ]
Break Long code lines in Visual Studio ]
6 Effective Ways To Concatenate Strings In C# ]

komentarz 28 sierpnia 2020 przez Nabuchadonozor Gaduła (3,120 p.)
Dziękuję ślicznie! Zaraz przestudiuję ten kod i linki ;)
1
komentarz 28 sierpnia 2020 przez Nabuchadonozor Gaduła (3,120 p.)
O taką odpowiedź właśnie mi chodziło, trafiłeś w dziesiątkę! Jeszcze raz bardzo dziękuję! :)
–2 głosów
odpowiedź 26 sierpnia 2020 przez JakSky Stary wyjadacz (14,770 p.)
string path = @"C:\temp\file"; // path to file
using (FileStream fs = File.Create(path)) 
{
       
        string dataasstring = "data"; //your data
        byte[] info = new UTF8Encoding(true).GetBytes(dataasstring);
        fs.Write(info, 0, info.Length);
}

Przykład z dokumentacji 

komentarz 28 sierpnia 2020 przez Nabuchadonozor Gaduła (3,120 p.)
I dlatego właśnie poszukuje jak najkrótszych zapisów, które też będą oczywiście czytelne, tak jak w tym przykładzie, który podałeś wyżej :) Ale nadal nie jestem pewien co do odpowiedzi na pytanie dwa komentarze wyżej :/ Ale sugeruję sobie sam odpowiedź, iż jeśli program działa, to using nie będzie potrzebny, tak jak napisał "JakSky" w komentarzu... ;)
komentarz 28 sierpnia 2020 przez JakSky Stary wyjadacz (14,770 p.)

Ale sugeruję sobie sam odpowiedź, iż jeśli program działa, to using nie będzie potrzebny

Tu jesteś w błędzie. Oczywiście, że program będzie działał. Ale przy mocno obniżonej pamięci pojawić się może spadek wydajności. Do czego służy using polecam zajrzeć do dokumentacji.

 

komentarz 28 sierpnia 2020 przez adrian17 Ekspert (344,860 p.)
Niezbyt rozumiem, gdzie tutaj pamięć/wydajność wchodzi w grę.
komentarz 28 sierpnia 2020 przez JakSky Stary wyjadacz (14,770 p.)
Tu jest fajny przykład dlaczego warto używać using:

http://www.pzielinski.com/?p=1050 Co prawda nie dotyczy wydajności(o tym można poczytać w dokumentacji).
komentarz 30 sierpnia 2020 przez Nabuchadonozor Gaduła (3,120 p.)
Dzięki wielkie za linka!

Podobne pytania

0 głosów
1 odpowiedź 113 wizyt
pytanie zadane 17 lipca 2018 w Java przez Kabuuz Bywalec (2,820 p.)
0 głosów
1 odpowiedź 267 wizyt
pytanie zadane 27 czerwca 2022 w C i C++ przez sushi2021 Nowicjusz (160 p.)
0 głosów
2 odpowiedzi 257 wizyt
pytanie zadane 10 listopada 2015 w C i C++ przez Evelek Nałogowiec (28,960 p.)

92,539 zapytań

141,382 odpowiedzi

319,481 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...