无法创建"文本中的表格用c#编写的文件,但在控制台中可以正常工作

本文关键字:控制台 工作 常工作 quot 创建 文本 表格 文件 | 更新日期: 2023-09-27 17:52:43

我试图在文本文件中存储一些表格格式的数据。我找到了一些代码来创建表控制台我可以在控制台上生成表格格式的数据,但我不知道为什么它不能用于文本文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace part1johnskeet
{
class Program
{
    static void Main(string[] args)
    {

        FileStream fs = new FileStream(@"D:'tabletxt.txt", FileMode.Create);
        StreamWriter sw = new StreamWriter(fs, UTF8Encoding.UTF8);

        Console.WriteLine("writing File");
        sw.WriteLine("");
        sw.WriteLine("----------------------------");

        Console.WriteLine("-------------------------------");
        Console.WriteLine("First Name | Last Name  |   Age");
        Console.WriteLine("-------------------------------");
        Console.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Bill", "Gates", 51));
        Console.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Edna", "Parker", 114));
        Console.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Johnny", "Depp", 44));
        Console.WriteLine("-------------------------------");





        sw.WriteLine("-------------------------------");
        sw.WriteLine("Name".PadRight(13, ' ') + "Unit".PadLeft(10, ' ') + "Rate".PadLeft(6, ' ') + "Total".PadRight(8, ' ') + "");
        sw.WriteLine("fas".PadRight(13, ' ') + "10".PadLeft(10, ' ') + "710".PadLeft(6, ' ') + "22.55".PadRight(8, ' ') + "");
        sw.WriteLine("asd 1".PadRight(13, ' ') + "10.25".PadLeft(10, ' ') + "20.25".PadLeft(6, ' ') + "800.55".PadRight(8, ' ') + "");
        sw.WriteLine("asd".PadRight(13, ' ') + "13.5".PadLeft(10, ' ') + "35".PadLeft(6, ' ') + "600.25".PadRight(8, ' ') + "");
        sw.WriteLine(" adas".PadRight(13, ' ') + "14.3".PadLeft(10, ' ') + "10".PadLeft(6, ' ') + "143".PadRight(8, ' ') + "");
        sw.WriteLine("asdas".PadRight(13, ' ') + "10".PadLeft(10, ' ') + "22.5".PadLeft(6, ' ') + "220.5".PadRight(8, ' ') + "");
        sw.WriteLine("asdas".PadRight(13, ' ') + "700".PadLeft(10, ' ') + "16.5".PadLeft(6, ' ') + "800.15".PadRight(8, ' ') + "");
        sw.WriteLine("sdfefsdfe34rs".PadRight(13, ' ') + "800".PadLeft(10, ' ') + "10".PadLeft(6, ' ') + "8000".PadRight(8, ' ') + "");
        sw.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Edna", "Parker", 114));
        sw.WriteLine(String.Format("{0,-10} | {1,-10} | {2,5}", "Johnny", "Depp", 44));



        string string1 = "asdf";
        string string2 = "ffs";
        string string4 = "gahah";
        string string5 = "kjshdfkjh";
        string string6 = "fg";
        string string7 = "kkkdd";
        string string8 = "asdasdf";
        string string9 = "somelongtext";
        sw.WriteLine(String.Format("string1: {0,-10} string2: {1,-10}", string1 + ",", string2));
        sw.WriteLine(String.Format("string4: {0,-10} string5: {1,-10}", string4 + ",", string5));
        sw.WriteLine(String.Format("string6: {0,-10} string7: {1,-10}", string6 + ",", string7));
        sw.WriteLine(String.Format("string8: {0,-10} string9: {1,-10}", string8 + ",", string9));


        Console.WriteLine(String.Format("string1: {0,-10} string2: {1,-10}", string1 + ",", string2));
        Console.WriteLine(String.Format("string4: {0,-10} string5: {1,-10}", string4 + ",", string5));
        Console.WriteLine(String.Format("string6: {0,-10} string7: {1,-10}", string6 + ",", string7));
        Console.WriteLine(String.Format("string8: {0,-10} string9: {1,-10}", string8 + ",", string9));


        // Create array of 5-tuples with population data for three U.S. cities, 1940-1950.
        Tuple<string, DateTime, int, DateTime, int>[] cities = 
      { 
          Tuple.Create("Los Angeles", new DateTime(1940, 1, 1), 1504277, 
                     new DateTime(1950, 1, 1), 1970358),
         Tuple.Create("New York", new DateTime(1940, 1, 1), 7454995, 
                     new DateTime(1950, 1, 1), 7891957),  
         Tuple.Create("Chicago", new DateTime(1940, 1, 1), 3396808, 
                     new DateTime(1950, 1, 1), 3620962),  
         Tuple.Create("Detroit", new DateTime(1940, 1, 1), 1623452, 
                     new DateTime(1950, 1, 1), 1849568) };
        // Display header 
        string header = String.Format("{0,-12}{1,8}{2,12}{1,8}{2,12}{3,14}'n",
                                      "City", "Year", "Population", "Change (%)");
        Console.WriteLine(header);
        sw.WriteLine(header);
        string output;
        foreach (var city in cities)
        {
            output = String.Format("{0,-12}{1,8:yyyy}{2,12:N0}{3,8:yyyy}{4,12:N0}         {5,14:P1}",
                                   city.Item1, city.Item2, city.Item3, city.Item4,                            city.Item5,
                                   (city.Item5 - city.Item3) / (double)city.Item3);
            Console.WriteLine(output);
            sw.WriteLine(output);
        }

        sw.WriteLine("-------------------------------");
        sw.Flush();
        sw.Close();
        Console.WriteLine("File written");

    }

}
}

这是我的代码与不同的方式来创建表在控制台

无法创建"文本中的表格用c#编写的文件,但在控制台中可以正常工作

代码运行正常。我要做的第一件事是检查"D:' tablettxt .txt"的权限。你能在窗口中打开那个位置并用资源管理器添加一个新的文本文件吗?